typedef enum {false, true} bool;为什么在devc++中报错?
时间: 2024-09-30 19:15:39 浏览: 43
408结构体对齐-typedef-结构体指针-c++引用
在Dev-C++中,typedef enum {false, true} bool;这样的声明通常会报错,因为`bool`是一个标准C++关键字,用于表示布尔类型,它已经被预定义,你不能直接用`typedef`将其重新声明为枚举类型。如果你想创建自定义的布尔类型,应该使用其他方式,例如:
```cpp
enum CustomBool {
CB_FALSE = 0,
CB_TRUE = 1
};
// 或者
struct CustomBoolean {
static const CustomBoolean FALSE = false;
static const CustomBoolean TRUE = true;
};
```
或者使用`std::integral_constant<bool>`从C++11开始:
```cpp
using CustomBool = std::integral_constant<bool, false>;
```
报错的具体内容可能会指出`bool`已经为内置类型,并且不允许用`typedef`覆盖。如果你坚持这样做,你需要检查Dev-C++编译器对C++特性的支持情况,可能需要更新到更现代的编译器或者更改代码结构以避免冲突。
阅读全文