3

赋值运算符的所有重载std::slice_array都是const成员函数,但为什么要这样设计呢?

可能原因是std::slice_array被设计成代理类,而这些赋值运算符只是修改了引用的元素,没有修改代理类本身,所以它们是 const 成员函数是合理的。但是,为什么那些const 成员函数的复合运算符呢?std::slice_array

4

1 回答 1

4

对于第一个问题,slice_array只是一个代理类。它具有引用语义,因此它的实际成员都不会被任何操作修改,因此标记所有内容const会给您更多的可用性。

对于第二个问题,声明了所有运算符根据const当前工作草案并返回C++11)。出于与赋值运算符相同的原因const。这只是 cppreference 错误识别它们的一个错误。发生。

于 2018-02-07T18:32:54.763 回答