const、volatile 等关键字不应出现在基本类型名称的中间
6.2.5 ID_sandwichedModifier
某些基本类型名称可由多个符号组成,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
相关
依据
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