草庐IT

copy_ctor_assign

全部标签

c++ - STL vector : resize() and assign()

有一个类(class)成员std::vectorv和intn,在此vector上使用以下内容有什么区别?,未初始化:v.assign(n,0.0);或v.resize(n,0.0); 最佳答案 assign将大小设置为n并将所有元素值设置为0.0,而resize将大小设置为n并且只有new元素值为0.0。如果v事先为空,它们是相同的,但assign可能更清楚。 关于c++-STLvector:resize()andassign(),我们在StackOverflow上找到一个类似的问题:

c++ - STL vector : resize() and assign()

有一个类(class)成员std::vectorv和intn,在此vector上使用以下内容有什么区别?,未初始化:v.assign(n,0.0);或v.resize(n,0.0); 最佳答案 assign将大小设置为n并将所有元素值设置为0.0,而resize将大小设置为n并且只有new元素值为0.0。如果v事先为空,它们是相同的,但assign可能更清楚。 关于c++-STLvector:resize()andassign(),我们在StackOverflow上找到一个类似的问题:

C++ 11 : is a defaulted copy constructor user declared?

我猜是这样,但我正在寻找C++11语言律师来确认我的印象。下面的课是真的吗structX{X(){}X(Xconst&)=default;};不会自动启用移动,即获取X(X&&)和operator=(X&&),因为它的复制构造函数是“用户声明的”,即使它看起来等同于structX{};这将获得X(Xconst&)和X(X&&)等,在使用时隐式声明和(平凡)定义。 最佳答案 来自标准:8.4.2Explicitly-defaultedfunctions[dcl.fct.def.default]4-[...]Aspecialmember

C++ 11 : is a defaulted copy constructor user declared?

我猜是这样,但我正在寻找C++11语言律师来确认我的印象。下面的课是真的吗structX{X(){}X(Xconst&)=default;};不会自动启用移动,即获取X(X&&)和operator=(X&&),因为它的复制构造函数是“用户声明的”,即使它看起来等同于structX{};这将获得X(Xconst&)和X(X&&)等,在使用时隐式声明和(平凡)定义。 最佳答案 来自标准:8.4.2Explicitly-defaultedfunctions[dcl.fct.def.default]4-[...]Aspecialmember

c++ - 位域 "In-class initialization"结果为 "error: lvalue required as left operand of assignment"

structbitfield{inti=0;//okintj:8=0;//error:lvaluerequiredasleftoperandofassignment};使用C++11“类内初始化”功能初始化位域的正确语法是什么? 最佳答案 这是作为C++标准的核心问题1341提出的,但在2015年10月被C++核心工作组拒绝为NAD(“不是缺陷”)-参见http://open-std.org/JTC1/SC22/WG21/docs/cwg_closed.html#1341 关于c++-位

c++ - 位域 "In-class initialization"结果为 "error: lvalue required as left operand of assignment"

structbitfield{inti=0;//okintj:8=0;//error:lvaluerequiredasleftoperandofassignment};使用C++11“类内初始化”功能初始化位域的正确语法是什么? 最佳答案 这是作为C++标准的核心问题1341提出的,但在2015年10月被C++核心工作组拒绝为NAD(“不是缺陷”)-参见http://open-std.org/JTC1/SC22/WG21/docs/cwg_closed.html#1341 关于c++-位

c++ - 'Guaranteed Copy Elision' (P0135, C++1z) 是否可能需要 ABI 损坏?

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html2016年6月在芬兰奥卢举行的session上,上述关于“保证复制省略”的提案被投票纳入C++工作文件,然后被投票作为委员会草案发布。希望这会导致明年作为C++17标准发布。该提案阐明了涉及临时对象的各种值类别,以强制在某些用例中不调用复制构造函数。我的问题是“这个新要求可能会破坏以前在这些情况下可能没有进行复制省略的编译器的ABI兼容性,或者以与新要求不兼容的方式实现它?"我正在考虑诸如初始化之类的事情,当对象的创建可以内联时会省略拷贝,但在跨越编译

c++ - 'Guaranteed Copy Elision' (P0135, C++1z) 是否可能需要 ABI 损坏?

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html2016年6月在芬兰奥卢举行的session上,上述关于“保证复制省略”的提案被投票纳入C++工作文件,然后被投票作为委员会草案发布。希望这会导致明年作为C++17标准发布。该提案阐明了涉及临时对象的各种值类别,以强制在某些用例中不调用复制构造函数。我的问题是“这个新要求可能会破坏以前在这些情况下可能没有进行复制省略的编译器的ABI兼容性,或者以与新要求不兼容的方式实现它?"我正在考虑诸如初始化之类的事情,当对象的创建可以内联时会省略拷贝,但在跨越编译

C++1y/C++14 : Assignment to object outside its lifetime is not allowed in a constant expression?

根据当前草案,以下C++14/C++1y程序是否格式错误?#includetemplatestructliteral_array{Tdata[n];};templateconstexprliteral_arrayoperator+(literal_arraya,literal_arrayb){literal_arrayx;for(size_ti=0;ia={1,2,3};constexprliteral_arrayb={4,5};constexprautoc=a+b;}Clangtrunk(在撰写本文时)给出:error:constexprvariable'c'mustbeinitia

C++1y/C++14 : Assignment to object outside its lifetime is not allowed in a constant expression?

根据当前草案,以下C++14/C++1y程序是否格式错误?#includetemplatestructliteral_array{Tdata[n];};templateconstexprliteral_arrayoperator+(literal_arraya,literal_arrayb){literal_arrayx;for(size_ti=0;ia={1,2,3};constexprliteral_arrayb={4,5};constexprautoc=a+b;}Clangtrunk(在撰写本文时)给出:error:constexprvariable'c'mustbeinitia