gpt4 book ai didi

c++ - void 和 cv void 有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:26 25 4
gpt4 key购买 nike

我在 C++ 标准的最新草案 (N4606) 中遇到了类型“cv void”:

8.3.3 [dcl.mptr], paragraph 3

A pointer to member shall not point to a static member of a class (9.2.3), a member with reference type, or “cv void”.

通过一些研究,我发现“cv void”是一个真实的类型,但我不知道与 void 类型相比有什么区别。你能举个例子(也许用代码)解释一下吗?


编辑:

  • 我有点希望 cv 代表 cv-qualified。我的问题是,为什么我们需要对 void 类型进行“cv 限定”?
  • 我说“cv void 是一个真实类型” 的原因是,标准实际上定义了它:

    3.9.1 [basic.fundamental], paragraph 9

    A type cv void is an incomplete type that cannot be completed; such a type has an empty set of values...

最佳答案

“cv void”不是真实类型。这里的“cv”是“possibly cv-qualified”的简写,意思是“可能有一个const 或一个volatile”。

这段话意味着指向成员的指针不能指向以下类型的对象:voidconst voidvolatile voidconst volatile void。这很明显,因为这样的对象一开始就不可能存在,但我想清楚一点是件好事。

关于c++ - void 和 cv void 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39946420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com