c++ - 为什么 std::slice_array::operator= const?

标签 c++ constants slice member-functions valarray

All overloads of assignment operatorsstd::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/

相关文章:

c++ - 大多数派生类中的虚拟成员函数?

c++ - 列表和列表元素,存储在哪里?

Python slice 表示法只取列表的开始和结束部分?

进行 "size safe"切片的 Pythonic 方式

json - 合并结构 slice

c++ - 使用 Application Verifier 调试时应用程序挂起

c++ - 为什么不捕获 `std::promise::~promise` 中已经传播的异常

c++ - 关于C++常量语法的简单问题

c# - 在编译代码或外部文件中嵌入大量常量

c++ - 是否可以在 C++ 中强制传递依赖对象的常量