7.2節枚舉聲明==操作符()不說的operator!=()
和operator==()
的範圍的列舉任何東西。但下面的代碼編譯。C++標準並沒有說明任何操作!=()和枚舉類
#include <iostream>
enum class Month{jan = 1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov , dec};
int main()
{
Month a = Month::feb;
Month b = Month::jul;
Month c = a;
if(a != b) std::cout << "a |= b" << '\n';
if(a == c) std::cout << "a == c" << '\n';
}
爲什麼你期待它不應該?標準沒有特別說明這些運算符對'int'的含義。 –
@MikeSeymour§5.10也沒有爲枚舉類說任何東西。 –
@WakeupBrazil:的確,它按照5.9。我已經將我的評論擴展爲一個答案,因爲它不是微不足道的。 –