gpt4 book ai didi

c++ - 是否可以在使用 const 的所有地方使用 volatile?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:41 25 4
gpt4 key购买 nike

我想知道 volatile 是否可以在 const 可以使用的任何地方使用,以及每种情况意味着什么。

volatile dummy_class
volatile dummy_class&
dummy_class volatile*
dummy_class *volatile
dummy_class volatile *volatile

当涉及 const 时,这些都是不同的情况,相同的语义是否适用于 volatile

最佳答案

差不多。两者都是cv-qualifiers,几乎可以在任何地方使用。它们在 C++ 语法中出现的唯一地方是:

cv-qualifier:
    const
    volatile

其余的语法将它们引用为cv-qualifier

请注意,您没有提到可以使用 cv-qualifiers 的地方是:

struct X {
void f() const;
void g() volatile;
void h() const volatile;
};

参见 http://drdobbs.com/cpp/184403766以备后用。

但是,有一条规则,您不能像这样组合 constmutable:

stuct X {
mutable const int x; // error
mutable volatile int y; // valid
};

标准中的相关位置是[dcl.stc]:

The mutable specifier can be applied only to names of class data members (9.2) and cannot be applied to names declared const or static [...]

关于c++ - 是否可以在使用 const 的所有地方使用 volatile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8952593/

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