作用域枚举数中的c++关键字
C++ keywords in scoped enumerators
可以在限定范围的枚举数中使用保留标识符吗?重要的是,为什么不呢?
enum struct token { void, int, return, not, if };
为什么不这个问题很难回答,但其实并不是那么重要。我们可能会花费数年的时间来讨论为什么有些特性是在一种语言中,而有些特性不是。这是浪费精力。这是你必须使用的语言定义,我熟悉的所有语言都遵循相同的范式。(.NET允许使用保留关键字作为标识符名称,但仅当前缀为特殊符号时。此外,没有一种语言是完美的,当然也不可能满足每个程序员可能寻找的每一个标准。
但是考虑一下在枚举和其他情况下是否允许使用关键字:编译器肯定会变得非常非常复杂,因此也会变慢。此外,生成的代码更有可能使读者感到困惑,并使其难以维护。c++已经给你提供了很多自缢的余地。为什么要求更多?
但是,如果你真的想要一个反映语言保留符号的值的集合,那么你可以考虑使用像std::map
这样带有字符串键和字符串值的东西。这可能接近于给你想要的,而不需要任何内部巫术。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++中的"inline"关键字
- 如何确保C++函数在定义之前声明(如override关键字)
- 谷歌模拟和覆盖关键字
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 当我从下面的代码中删除关键字 virtual 时,它可以正常工作,否则会出现错误。在这里"virtual"字的意义是什么?
- 为什么"delete"关键字不删除节点?
- 在 c++ 中正确定义"this"关键字?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- 在 typedef 内部使用 const 关键字和在 typedef 外部使用 const 关键字之间有区别吗?
- C++ - 为什么这里需要'template'关键字?
- C++函数的关键字?
- 使用 'typename' 关键字将非类型视为依赖上下文中的类型
- "friend"关键字在C++中是什么意思?
- 声明C++数组(带或不带 "new" 关键字)
- 对齐和对齐的实际用例C++关键字
- 在 c++ 中三元运算符中不允许继续(关键字)吗?
- 考虑到其他好处,关键字'auto'真的有助于简化调试C++吗?
- 在 Objective-C++ -> EXC_BAD_ACCESS Error 中使用"new"关键字