c++ - const void 有什么意义?

标签 c++ c function constants void

显然,可以声明一个返回const void的函数:

const void foo()
{
}

g++ 似乎认为 const 很重要,因为以下代码无法编译:

#include <type_traits>

static_assert(std::is_same<void(), const void()>::value, "const matters");

那么const void有什么实际意义吗?

最佳答案

不是真的。但是忽略 void 上的 cv 限定或使其出错可能会在编译器实现和最终用户代码方面造成不必要的复杂性。考虑像

这样的模板
  template<typename T>
  const T ...

没有理由在这种情况下使用 void 成为一种特殊情况(比现在更多),它只会让人头疼。

此外,虽然 const void 没有帮助,但 const void* 也有其用处。

关于c++ - const void 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057987/

相关文章:

c++ - googletest-自动打印出哪个EXPECT语句失败

c - OpenWrt LibUbi 实现

python - 为什么 %e 在格式字符串中的行为与 %g 不同?

c++ - 如何将 SQLite c 文件(合并)与 cpp 应用程序链接?

javascript - FullCalendar.io。无法呈现背景事件

C 递归不递归

c++ - 使用 C++ (MFC) 从网络摄像头捕获视频到文件

c++ - 在链表前面添加新节点的问题

c++ - 在 C++/CLR 项目中引用 NuGet 包时编译器警告 C4691

c++ - 函数中指向 vector vector 的指针给出 'expression must have pointer type' 错误