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

const、volatile 等关键字不应出现在基本类型名称的中间

6.2.5 ID_sandwichedModifier
目录 › next › previous

某些基本类型名称可由多个符号组成,const、volatile 等关键字不应出现在类型名称的中间,否则可读性较差。

本规则对下列 C 或 C++ 关键字有同样的要求:

const、volatile、
inline、virtual、explicit、
register、static、thread_local、extern、mutable、
friend、typedef、constexpr、
_Alignas、_Atomic、_Noreturn、_Thread_local

即使对这些关键字的位置不作统一要求,也不应使其出现在类型名称的中间,否则很容易引起误解。

示例:

const long volatile long cvll = 0;    // Non-compliant
long const double volatile cvld = 0;  // Non-compliant

应改为:

const volatile long long cvll = 0;    // Compliant
const volatile long double cvld = 0;  // Compliant

相关

ID_badQualifierPosition ID_badSpecifierPosition

依据

ISO/IEC 9899:1999 6.7(1) ISO/IEC 9899:1999 6.7.2(1) ISO/IEC 9899:2011 6.7(1) ISO/IEC 9899:2011 6.7.2(1) ISO/IEC 14882:2003 A.6 ISO/IEC 14882:2011 A.6

参考

C++ Core Guidelines NL.26
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.