雖然作用域枚舉(enum class
)不能隱式轉換為整數類型,但我仍然可以通過<
(在GCC 10.3上)對它們進行比較。
#include <algorithm>
#include <iostream>
enum class Colours {
Red = 0,
Green = 1,
Blue = 2
};
int main() {
std::cout << (std::min(Colours::Blue, Colours::Red) < Colours::Green) << std::endl;
return 0;
}
為什么這是標準行為(如果是)?
你能給我一個關于cppreference.com還是C++標準的參考?
這在比較運算符中描述
因此,除了算術類型(包括整數類型)之外,還明確提到了作用域和非作用域枚舉類型。