☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

赋值运算符应返回所属类的非 const 左值引用

6.8.3 ID_nonStdAssignmentRetType
目录 › next › previous

赋值运算符应返回所属类不受 const 关键字限定的左值引用,以便调用者使用并满足泛型编程的要求。

重载赋值运算符的行为应与内置赋值运算符一致,使类对象的赋值表达式可以灵活地作为各种语句的子表达式,这也是“泛型程序设计”的必要条件,使同一套代码既可以适应普通变量,也可以适应类对象。

本规则是 ID_illOperatorRetType 的特化,对复合赋值运算符也有相同的要求。

示例:

struct A {
    void operator = (const A&);  // Non-compliant
    void operator = (A&&);       // Non-compliant
};

应改为:

struct A {
    A& operator = (const A&);  // Compliant
    A& operator = (A&&);       // Compliant
};

相关

ID_illOperatorRetType

依据

ISO/IEC 14882:2003 12.8(10) ISO/IEC 14882:2011 12.8(22)

参考

C++ Core Guidelines F.47 C++ Core Guidelines C.60 C++ Core Guidelines C.63
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.