gpt4 book ai didi

c++ - 枚举类范围解析运算符

转载 作者:太空狗 更新时间:2023-10-29 20:34:39 25 4
gpt4 key购买 nike

当我尝试通过 g++ test.cc --std=c++14 编译 test.cc 时, 我收到以下错误。

test.cc:5:26: error: expected unqualified-id before numeric constant
Colour colour = Colour::None;

测试.cc

#include "state.h"
#include <X11/X.h>

int main(){
Colour colour = Colour::None;
}

状态.h

enum class Colour { None, Black, White };

我发现 #include <X11/X.h> , None定义为常量

 #define None                 0L /* universal null resource or null atom */

令我困扰的是我已经使用了作用域解析运算符,即 Colour::None , 指定哪个 None我正在引用,但错误仍然发生。

最佳答案

恐怕这就是生活,它集中体现了宏之所以糟糕的原因。

一旦你有#include d <X11/X.h> ,预处理器会分解你的源代码,编译器会看到

Colour colour = Colour::0;

这没有意义。

一个解决方法是 #undef None包含文件后。

关于c++ - 枚举类范围解析运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47243398/

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