Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
赋值运算符的所有重载std::slice_array都是const成员函数,但为什么要这样设计呢?
std::slice_array
可能原因是std::slice_array被设计成代理类,而这些赋值运算符只是修改了引用的元素,没有修改代理类本身,所以它们是 const 成员函数是合理的。但是,为什么那些非const 成员函数的复合运算符呢?std::slice_array
对于第一个问题,slice_array只是一个代理类。它具有引用语义,因此它的实际成员都不会被任何操作修改,因此标记所有内容const会给您更多的可用性。
slice_array
const
对于第二个问题,声明了所有运算符(根据const当前工作草案并返回C++11)。出于与赋值运算符相同的原因const。这只是 cppreference 错误识别它们的一个错误。发生。