我发现了一些声明这样的枚举的代码:enum boolean {FALSE,TRUE};
是否有任何理由使用此代替c ++中已存在的普通true
和false
?
答案 0 :(得分:5)
使用enum
作为另一个用户定义的布尔值的C ++的主要缺点是它不允许从条件表达式自动转换:
enum boolean { FALSE, TRUE };
int main()
{
boolean b;
int i = 0;
int j = 1;
b = ( i == j ); // error
}
另请参阅Herb Sutter的this old GotW column,了解C ++为何选择添加内置bool
类型。