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

Сообщение Re[6]: Требуются пояснения от 11.12.2024 18:00

Изменено 11.12.2024 19:45 rg45

Re[6]: Требуются пояснения
Здравствуйте, B0FEE664, Вы писали:

BFE>Нет при таком подходе никакой типовой надёжности! Вот такое скомпилируется:

BFE>
BFE>UMBA_ENUM_CLASS_IMPLEMENT_UNDERLYING_TYPE_ARITHMETIC_OPERATORS(CEEE)
BFE>    CEEE x = CEEE::two + 1;   
BFE>

BFE>при том, что в CEEE:
BFE>
BFE>enum class CEEE
BFE>{
BFE>    zero,
BFE>    one,
BFE>    two
BFE>};
BFE>


Что-то удивительное ты пишешь:

http://coliru.stacked-crooked.com/a/e56da567f0d45c7c

enum class CEEE
{
    zero,
    one,
    two
};

int main()
{
    const CEEE eee = CEEE::two + 1; // error: no match for 'operator+' (operand types are 'CEEE' and 'int')
}


В устройство макроса я не вникал, если что. Я исходил из предположения, что он реализован через enum class.
Re[6]: Требуются пояснения
Здравствуйте, B0FEE664, Вы писали:

BFE>Нет при таком подходе никакой типовой надёжности! Вот такое скомпилируется:

BFE>
BFE>UMBA_ENUM_CLASS_IMPLEMENT_UNDERLYING_TYPE_ARITHMETIC_OPERATORS(CEEE)
BFE>    CEEE x = CEEE::two + 1;   
BFE>

BFE>при том, что в CEEE:
BFE>
BFE>enum class CEEE
BFE>{
BFE>    zero,
BFE>    one,
BFE>    two
BFE>};
BFE>


Что-то удивительное ты пишешь. Вот такое НЕ компилируется:

http://coliru.stacked-crooked.com/a/e56da567f0d45c7c

enum class CEEE
{
    zero,
    one,
    two
};

int main()
{
    const CEEE eee = CEEE::two + 1; // error: no match for 'operator+' (operand types are 'CEEE' and 'int')
}


В устройство макроса я не вникал, если что. Я исходил из предположения, что он реализован через enum class.