std :: basic_string是否正式具有隐式生成的move构造函数?

干杯和hth。-阿尔夫

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

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);

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

迈克·西摩

不,它不是隐式的,而是显式的。同样在C ++ 11 21.4 / 5中是

basic_string(basic_string&& str) noexcept;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

std :: basic_string是否正式具有隐式生成的move构造函数?

来自分类Dev

是否可以从std :: basic_string继承?

来自分类Dev

错误:没有匹配函数调用'std :: map <std :: __ cxx11 :: basic_string <char>

来自分类Dev

std :: basic_string构造函数如何事先知道要保留多少空间?

来自分类Dev

未定义模板'std :: basic_string <char,std :: char_traits <char>,std :: allocator <char>>'的隐式实例化

来自分类Dev

错误:没有匹配的函数调用'std :: __ cxx11 :: basic_string <char> :: basic_string(int&)'

来自分类Dev

std :: vector是否具有引用的副本构造函数?

来自分类Dev

std :: vector是否具有{元素的初始数量}构造函数?

来自分类Dev

错误:没有匹配的函数调用'to_string(std :: basic_string <char>&)'

来自分类Dev

具有std :: string属性的默认移动构造函数行为

来自分类Dev

错误:无法从'std :: string * {aka std :: basic_string <char> *}'转换为'std :: string {aka std :: basic_string <char>}'||

来自分类Dev

没有从'const std :: __ 1 :: basic_string <char>到'std :: __ 1 :: basic_string <char> *'的可行转换

来自分类Dev

关于std :: basic_string的基础存储

来自分类Dev

从std :: map <std :: basic_string <char>,std :: pair <int,int(*)(const std :: vector :: Mat

来自分类Dev

在C ++ 17中没有从std :: string到std :: string_view的隐式转换(在std :: experimental :: basic_string_view中)

来自分类Dev

不将std :: string嵌入异常的规则是否仍然适用于move构造函数?

来自分类Dev

错误:无法将std :: vector <std :: basic_string <char>>转换为std :: string *

来自分类Dev

为什么未调用std :: string move构造函数?

来自分类Dev

std :: bind的返回类型隐式转换为两个不同的显式构造函数

来自分类Dev

std :: bind的返回类型隐式转换为两个不同的显式构造函数

来自分类Dev

为什么带有显式声明的move构造函数的类无法使用`std :: is_move_constructible_v`?

来自分类Dev

在移动构造函数中使用std :: move

来自分类Dev

移动构造函数和std :: move混乱

来自分类Dev

带有GNU STL的GCC 4.8为std :: string构造函数生成错误代码?

来自分类Dev

std :: shared_ptr <T>:指向T的右值指针的隐式构造函数

来自分类Dev

C ++标准是否保证std :: basic_string :: npos + 1 == 0?

来自分类Dev

构造函数采用std :: string_view与std :: string并移动

来自分类Dev

std :: move对比std :: forward

来自分类Dev

std :: forward与std :: move的用法

Related 相关文章

  1. 1

    std :: basic_string是否正式具有隐式生成的move构造函数?

  2. 2

    是否可以从std :: basic_string继承?

  3. 3

    错误:没有匹配函数调用'std :: map <std :: __ cxx11 :: basic_string <char>

  4. 4

    std :: basic_string构造函数如何事先知道要保留多少空间?

  5. 5

    未定义模板'std :: basic_string <char,std :: char_traits <char>,std :: allocator <char>>'的隐式实例化

  6. 6

    错误:没有匹配的函数调用'std :: __ cxx11 :: basic_string <char> :: basic_string(int&)'

  7. 7

    std :: vector是否具有引用的副本构造函数?

  8. 8

    std :: vector是否具有{元素的初始数量}构造函数?

  9. 9

    错误:没有匹配的函数调用'to_string(std :: basic_string <char>&)'

  10. 10

    具有std :: string属性的默认移动构造函数行为

  11. 11

    错误:无法从'std :: string * {aka std :: basic_string <char> *}'转换为'std :: string {aka std :: basic_string <char>}'||

  12. 12

    没有从'const std :: __ 1 :: basic_string <char>到'std :: __ 1 :: basic_string <char> *'的可行转换

  13. 13

    关于std :: basic_string的基础存储

  14. 14

    从std :: map <std :: basic_string <char>,std :: pair <int,int(*)(const std :: vector :: Mat

  15. 15

    在C ++ 17中没有从std :: string到std :: string_view的隐式转换(在std :: experimental :: basic_string_view中)

  16. 16

    不将std :: string嵌入异常的规则是否仍然适用于move构造函数?

  17. 17

    错误:无法将std :: vector <std :: basic_string <char>>转换为std :: string *

  18. 18

    为什么未调用std :: string move构造函数?

  19. 19

    std :: bind的返回类型隐式转换为两个不同的显式构造函数

  20. 20

    std :: bind的返回类型隐式转换为两个不同的显式构造函数

  21. 21

    为什么带有显式声明的move构造函数的类无法使用`std :: is_move_constructible_v`?

  22. 22

    在移动构造函数中使用std :: move

  23. 23

    移动构造函数和std :: move混乱

  24. 24

    带有GNU STL的GCC 4.8为std :: string构造函数生成错误代码?

  25. 25

    std :: shared_ptr <T>:指向T的右值指针的隐式构造函数

  26. 26

    C ++标准是否保证std :: basic_string :: npos + 1 == 0?

  27. 27

    构造函数采用std :: string_view与std :: string并移动

  28. 28

    std :: move对比std :: forward

  29. 29

    std :: forward与std :: move的用法

热门标签

归档