【问题标题】:C++ Is "const void" As Return Value More Const-Correct Than "void"? [duplicate]C ++是“const void”作为返回值比“void”更正确吗? [复制]
【发布时间】:2015-04-26 17:41:27
【问题描述】:

在编程方面,我已经变得有点狂热。我到处都有 const(当然是正确的)。现在我什至开始 const'ing 我的 void 返回类型。

你不能创建一个 void 对象,因此你不能给一个 void 对象赋值,即使它是 const 与否,这意味着“const”变得多余。

那么,我是在无谓地构造我的 void 返回类型吗?

我希望这对于 Stack Overflow 来说不是太哲学化。

TL;DR:

const void Foo( void );

void Foo( void );

有什么不同吗?

【问题讨论】:

  • 不,返回 const void 没有意义,因为返回 void 表示什么都不返回。
  • 当你快要疯狂的时候,为什么不这样做const void const Foo( const void const );
  • 虽然 VC++ 不会对返回 const void 发出警告,但会警告将 const void 作为参数。
  • 实际上在 C++11 中返回 const 值是一个非常糟糕的主意,而不仅仅是 void。

标签: c++ constants void


【解决方案1】:

不,const void 完全没有意义。实际上,我很惊讶您的编译器没有给您警告。例如,Clang 告诉我:

example.cpp:1:1: warning: 'const' type qualifier on return type has no effect
      [-Wignored-qualifiers]
const void Foo( void );
^~~~~~
1 warning generated.

【讨论】:

  • 嗯,VC++ 没有给我任何错误。不过,没有意识到所有返回类型的处理都是一样的。这就是为什么我在发布之前找不到重复的问题。
猜你喜欢
  • 2021-02-22
  • 2012-07-09
  • 2016-08-28
  • 1970-01-01
  • 2017-07-13
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 2018-05-26
相关资源
最近更新 更多