Недавно я наткнулся на этот кусок кода, и мне интересно, почему он работает.Объявление Enum:
enum BuildResult {
RESULT_ERROR,
RESULT_SUCCESS
};
Позже этот Enum используется в операторе if (игнорируйте тот факт, что вместо него может быть RESULT_ERROR
):
if (!objectHere->build_result == ClassNameHere::RESULT_SUCCESS)
Я не знал, чтоВы можете использовать оператор not !
, чтобы перевернуть значение Enum.Это работает только с Enums, которые имеют два состояния?Существуют ли другие виды неявных операторов, которые можно использовать с Enums?Я нашел этот вопрос о ручном объявлении операторов, но, похоже, он не упоминает никаких неявных операторов для перечислений.