我知道std::basic_string
在实践中支持移动语义,但我在C ++ 11中找到的rvalue引用参数构造函数在类定义中看起来像这样:
basic_string(basic_string&&, const Allocator&);
然后在详细讨论中再次显示没有分配器参数的默认值:
C ++11§21.4.2/ 17 :basic_string(basic_string&& str, const Allocator& alloc);
忽略该类应该可移动的明显意图,该类是否正式具有隐式生成的移动构造函数?
答案 0 :(得分:3)
不,这不是隐含的,而是明确的。同样在C ++ 11中,21.4 / 5是
basic_string(basic_string&& str) noexcept;