我可以在范围内的枚举器中使用保留标识符;而且重要的是,为什么不呢?
enum struct token { void, int, return, not, if };
答案 0 :(得分:5)
为什么不非常难以回答,但实际上并不是那么重要。我们可以花费数年时间讨论为什么某些功能在某种语言中以及为什这将浪费能源。这是您必须使用的语言定义,我熟悉的所有语言都遵循相同的范例。 (.NET允许使用保留关键字作为标识符名称,但仅限于带有特殊符号的前缀。)此外,没有语言是完美的,当然也不适合任何单个程序员可能正在寻找的每个标准。
但是考虑一下在枚举和其他情况下是否允许关键字:编译器肯定会更复杂,因此更慢。此外,生成的代码更可能使读者感到困惑,并使其难以维护。 C ++提供了足够的绳索让自己挂起来。为什么要求更多?
但是,如果您真的想要一组反映语言保留符号的值,那么您可以考虑使用std::map
之类的字符串键和字符串值。这可能接近于为你提供你想要的任何内部伏都教。