All overloads of assignment operators的std::slice_array
都是const成员函数,但为什么要这样设计呢?
可能是因为 std::slice_array
被设计成一个代理类,而这些赋值运算符只是修改引用的元素,而没有修改代理类本身,所以它们是 const 是合理的成员函数。但是,为什么 those compound operators std::slice_array
不是 const 成员函数?
最佳答案
对于第一个问题,slice_array
只是一个代理类。它具有引用语义,因此它的任何实际成员都不会被任何操作修改,因此将所有内容标记为 const
可以提高可用性。
对于第二个问题,所有运算符都声明为const
(根据current working draft 返回C++11)。出于同样的原因,赋值运算符是 const
。这只是 cppreference 错误识别它们的错误。发生。
关于c++ - 为什么 std::slice_array::operator= const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48669897/