C++ 什么';这是c++;参数传递中常量位置的标准?

C++ 什么';这是c++;参数传递中常量位置的标准?,c++,constants,C++,Constants,如果我没有错,这些函数参数: void foo(const Type& type); void foo(Type const& type); 它们是等价的。申报的标准方式是什么? 通过使用第一个或第二个函数声明? “标准”是指最可读和最常用的版本,如果ISO C++没有定义任何规格< < /P> 申报的标准方式是什么 两者都是标准的 “标准”是指可读性和使用性最高的版本 可读性在旁观者的眼中。我更喜欢第二种,因为它提供了一致的从右到左的顺序。有些人更喜欢第一个,因为它明确地将限

如果我没有错,这些函数参数:

void foo(const Type& type);
void foo(Type const& type);
它们是等价的。申报的标准方式是什么? 通过使用第一个或第二个函数声明? “标准”是指最可读和最常用的版本,如果ISO C++没有定义任何规格< < /P> 申报的标准方式是什么

两者都是标准的

“标准”是指可读性和使用性最高的版本


可读性在旁观者的眼中。我更喜欢第二种,因为它提供了一致的从右到左的顺序。有些人更喜欢第一个,因为它明确地将限定符与它限定的类型相关联。

< P>没有普遍接受的C++风格指南。我能想到的最接近的是他们在这个问题上要说的是

有些人喜欢int-const-foo到const-int-foo的形式。他们认为这更具可读性,因为它更一致:它保持常量始终遵循其描述的对象的规则。但是,此一致性参数不适用于具有少量深度嵌套指针表达式的代码库,因为大多数常量表达式只有一个常量,并且它适用于基础值。在这种情况下,不需要保持一致性。可以说,将常量放在第一位更具可读性,因为它紧跟英语,将“形容词”(const)放在“名词”(int)之前

也就是说,虽然我们鼓励将const放在第一位,但我们并不要求它。但是要与你周围的代码保持一致


你在哪里见过第二种形式被使用?几乎所有地方都使用第一种格式。@DumbCoder第二种形式经常使用,因为它与指针的
typedef int*PTRINT
s一致:虽然
const PTRINT
PTRINT const
都声明了
const
指针,但使用第二种形式让它感觉像一个宏,如果你盲目地替换,你会得到正确的声明。我不明白这个问题。正如您所说,标准将两者定义为等效的。因此,这两个函数都是标准的。问题被标记为重复,但我不是在质疑这两个声明之间的区别,而是问声明该函数的标准方式是什么,因为我知道它们是等效的,所以最可读和使用的版本。我重新打开了,但这基本上是基于观点的,因为当事情是等价的,没有真正的“标准”。ISO C++或其他委员会是否已经“标准化”这些声明?一些代码准则统一了源代码。@ AbPull:不,ISO只指定语言是如何工作的,没有C++的中央风格。