显然,下面几种风格都是可能的:
void foo {const int &x};
void foo { const int& x};
void foo { int const &x};
void foo {int const& x};
趋向于使用int const 而不是const int
首先针对问题,什么是恒定不变的,恒定不变的部分就是const限定符前面的部分。
第2是一个使用模板时一个很常见的语法替换原则
typedef char * CHARS;
typedef CHARS const CPTR;
如果把const 放在所限定的类型前面,那么原则就不再适用了。
typedef char* CHARS;
typedef const CHARS CPTR;//指向常量char 类型的指针
同样 也适用于volatile限定符.
对于间隔符,决定在&符号和参数名称之间留出一个空格:
void foo(int const& x);
借助这种方法,同事也强调了:参数类型和参数名称是分离的。