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

What's the c++ standard in const postion in parameter passing?

本文关键字:标准 是什么 c++ 常量 位置 参数传递      更新时间:2023-10-16

如果我没弄错的话,这些函数参数:

void foo(const Type& type);
void foo(Type const& type);

是等价的。声明它们的标准方式是什么?通过使用第一个或第二个函数声明?如果ISO c++没有定义任何规范,那么"标准"是指最易读和最常用的版本。

声明它们的标准方式是什么?

都是标准的

这里的"标准"是指最易读和最常用的版本

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

没有公认的c++风格指南。我能想到的最接近的是Google的c++指南,他们在这个主题上说的是…

有些人喜欢用int const foo来代替const int foo。他们认为这样更容易读,因为它更一致:它保持了const总是跟随它所描述的对象的规则。但是,这个一致性参数不适用于具有少量深嵌套指针表达式的代码库,因为大多数const表达式只有一个const,并且它适用于底层值。在这种情况下,不需要保持一致性。把const放在前面可以说是更具可读性,因为它遵循英语的"形容词"。(const)在名词前面(int) .

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