LINUX.ORG.RU

История изменений

Исправление slovazap, (текущая версия) :

enum имеет значение строго из определённого списка. Битовые операции множество значений, естественно, значительно расширяют. Так что результат - int, но никак не enum.

PS. А если хочется наглядности в сигнатуре функции, используй что-то типа typedef int FT_flags_t. В C, разумеется, безо всяких статических проверок. В C++ действительно можно сделать аналог QFlags, причем так чтобы никто на него не ругался.

Исправление slovazap, :

enum имеет значение строго из определённого списка. Битовые операции множество значений, естественно, значительно расширяют. Так что результат - int, но никак не enum.

PS. А если хочется наглядности в сигнатуре функции, используй что-то типа typedef int FT_flags_t. В C, разумеется, безо всяких статических проверок. В C++ действительно можно сделать аналог QFlags, никто ругаться на него не будет.

Исходная версия slovazap, :

enum имеет значение строго из определённого списка. Битовые операции множество значений, естественно, значительно расширяют. Так что результат - int, но никак не enum.