std::slice_array
的{{3}}是const成员函数,但为什么会这样设计呢?
可能原因是std::slice_array
被设计为代理类,并且这些赋值运算符只修改引用的元素而不修改代理类本身,因此它们是const成员函数是合理的。但是,为什么std::slice_array
的All overloads of assignment operators不是 const成员函数?
答案 0 :(得分:3)
对于第一个问题,slice_array
只是一个代理类。它具有引用语义,因此任何操作都不会修改其实际成员,因此标记所有const
可以提供更多可用性。
对于第二个问题,所有运算符都声明为const
(根据current working draft并返回C++11)。出于与赋值运算符const
相同的原因。这只是cppreference错误识别它们的一个错误。发生。