CppCoreGuidelines C.12 类的成员数据不可为 const 或引用
06 August 2022
C.12: Don’t make data members const or references in a copyable or movable type
理由
这样做没啥用。导致该类型很难使用:不能复制,或因为种种原因,部分不能复制。
例子
class bad { const int i; // bad string& s; // bad // ... };
const 和&的成员数据导致这个类只能部分复制,即可以复制构造,不能复制赋值。
注意
如果你需要让成员指向某些东西,不要用引用,可以用指针(原始指针;智能指针;如果不能为空,可以是gsl::not_null)。
强化
标记出有 const 、 & 或&&修饰的成员数据。