std :: basic_string是否正式有一个隐式生成的移动构造函数?

时间:2015-03-21 13:18:33

标签: c++ language-lawyer move-semantics

我知道std::basic_string在实践中支持移动语义,但我在C ++ 11中找到的rvalue引用参数构造函数在类定义中看起来像这样:

C ++11§21.4/ 5
basic_string(basic_string&&, const Allocator&);

然后在详细讨论中再次显示没有分配器参数的默认值:

C ++11§21.4.2/ 17
basic_string(basic_string&& str, const Allocator& alloc);

忽略该类应该可移动的明显意图,该类是否正式具有隐式生成的移动构造函数?

1 个答案:

答案 0 :(得分:3)

不,这不是隐含的,而是明确的。同样在C ++ 11中,21.4 / 5是

basic_string(basic_string&& str) noexcept;