首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以移动助推::可选?

是否可以移动助推::可选?
EN

Stack Overflow用户
提问于 2012-05-28 10:50:45
回答 3查看 8.2K关注 0票数 26

我一直试图在一个带有boost::optional成员变量的类中定义一个默认的移动构造函数。

代码语言:javascript
运行
复制
#include <boost/optional.hpp>
#include <utility>
#include <vector>

struct bar {std::vector<int> vec;};

struct foo {
  foo() = default;
  foo(foo&&) = default;
  boost::optional<bar> hello;
};

int main() {
  foo a;
  foo b(std::move(a));
}

我的编译器既支持移动语义,也支持默认的移动构造函数,但我无法让它工作。

% clang++ foo.cc -std=c++11 -stdlib=libc++ foo.cc:15:7: error:调用已删除的foo foo b构造函数(std::move(A));^ foo.cc:9:3:注意:函数已显式标记在foo(foo&&) = default;^1错误生成。

有没有一种无需修改Boost的源代码就可以移动boost::optional的方法?还是我应该等到Boost支持移动?

我过去对boost::any也有过同样的问题。

EN

Stack Overflow用户

发布于 2014-09-22 15:20:47

只有在Boost版本1.56之后,Boost.Optional才支持移动构造。见发布说明

票数 24
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10783391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档