Информация об изменениях

Сообщение Вот еще бесит отсутствие флагового типа от 07.09.2022 0:31

Изменено 07.09.2022 0:32 Marty

Вот еще бесит отсутствие флагового типа
Здравствуйте!

Как-то не продумано это. А используется везде и постоянно. За неимением флагов народ использует enum, а в новых плюсиках — enum class, но это же костыли.

Хочется типизированного флагового типа, хз, какое ключевое слово к нему прилепить, может enum class flags bla-bla

Пока обхожусь разными вариантами, в основном enum/enum class, или что-то типа такого:

template<typename UnderlayingType>
struct Flags
{
typedef UnderlayingType underlaying_type;

static const UnderlayingType v1 = x1;
//...

// Тут конструкторы и преобразователи в UnderlayingType

// Можно брать значение, как мембер с именем value
underlaying_type value;

};


А как вы решаете флаговою проблему?
Вот еще бесит отсутствие флагового типа
Здравствуйте!

Как-то не продумано это. А используется везде и постоянно. За неимением флагов народ использует enum, а в новых плюсиках — enum class, но это же костыли.

Хочется типизированного флагового типа, хз, какое ключевое слово к нему прилепить, может enum class flags bla-bla

Пока обхожусь разными вариантами, в основном enum/enum class, или что-то типа такого:
template<typename UnderlayingType>
struct Flags
{
    typedef UnderlayingType underlaying_type;

    static const UnderlayingType v1 = x1;
    //...

    // Тут конструкторы и преобразователи в UnderlayingType

    // Можно брать значение, как мембер с именем value
    underlaying_type value;

};


А как вы решаете флаговою проблему?