为什么std::字符串的成员运算符=不是左值引用限定的

问题描述我最近learned成员函数可以ref-qualified,这允许我写structS{S&operator=(Sconst&)&//canonlybeusediftheimplicitobjectisanlvalue{return*this;}};Soperator+(S

发布:2022-10-16 标签:operator-overloadingc++stdstringref-qualifier


ref合格的成员函数作为模板参数?

问题描述这在clang3.3中可以正常编译:Thiscompilesfineinclang3.3:template<typenameT>structM;template<typenameR,typenameC,typename...A>structM<R(C::*)(A...)>

发布:2022-10-16 标签:templatesc++c++11member-functionsref-qualifier


c ++-const成员func,只能使用ref限定符在左值实例上调用

问题描述我正在尝试通过ref限定符强制在类的仅左值实例上调用类的const'getter'方法,并且由于某种原因得到了意外的结果(我正在通过c++1z标志在WindowsC++17支持的clang6.0.1进行编译>):I'mtryingtoenforceaconst'gette

发布:2022-10-16 标签:c++visual-c++c++17ref-qualifier


STL容器的右值ref限定词

问题描述为什么要使用STL容器的元素访问成员功能,例如std::array::operator[]或std::vector::operator[]没有右值引用限定符重载?当然我可以做std::move(generate_vector()[10]),但是我很好奇在标准化ref限定符

发布:2022-10-16 标签:c++stlref-qualifier


标准库类型的赋值运算符的ref限定词

问题描述我想知道,是否有原因导致标准类型的赋值运算符不符合左值引用的条件?他们都不是.Iwaswondering,isthereareasontheassignmentoperatorofstandardtypesisnotlvalueref-qualified?Noneofth

发布:2022-10-16 标签:c++stlassignment-operatorc++-standard-libraryref-qualifier


从r值ref限定方法返回r值参考是一种好习惯吗?

问题描述如我所见,一般规则是完全不从函数返回r值引用(罕见的除外)特别案例)。但是类方法呢?AsIcanseethegeneralruleisnottoreturnr-valuereferencesfromfunctionsatall(exceptforrarespecialca

发布:2022-10-16 标签:return-valuec++c++17rvalue-referenceref-qualifier


要移动还是不从r值ref限定方法移动?

问题描述在下面的C++11+代码中,应该首选哪种返回语句构造?InthefollowingC++11+codewhichreturnstatementconstructionshouldbepreferred?#include<utility>structBar{};struct

发布:2022-10-16 标签:return-valuec++c++17move-semanticsref-qualifier


如何删除相似的经过ref限定的成员函数之间的代码重复?

问题描述类似于如何删除相似的const和非const成员函数之间的代码重复?,我要删除假设我有一个类似这样的类:Let'ssayIhaveaclassthat'ssomethinglikethis:classMyStringBuilder{std::stringmember;pu

发布:2022-10-16 标签:c++dryc++11code-duplicationref-qualifier


函数的引用限定符是否有实际用例?

问题描述最近我了解了函数的引用限定符,例如structfoo{voidbar(){}voidbar1()&{}voidbar2()&&{}};在我可能需要此功能的地方,该语言功能是否有实际用例?WhereImightneedthisfeature,isthereanyrealus

发布:2022-10-16 标签:c++c++11c++14ref-qualifier


操作中的显式ref-qualified转换操作符模板

问题描述给定以下转换运算符structA{template<typenameT&显式运算符T&()&&;template<typenameT>显式运算符T&()&;template<typenameT>显式运算符constT&()const&;};structB{};我希望以下转

发布:2022-09-18 标签:c++c++11rvalue-referenceconversion-operatorref-qualifier