Сообщение Re[16]: enum class and if expression от 20.12.2019 10:26
Изменено 20.12.2019 10:32 B0FEE664
Re[16]: enum class and if expression
Здравствуйте, rg45, Вы писали:
R>
Проблема этого кода в том, что EE не зависит от EE_sequence, а потому добавление нового значения в EE приводит к необнаружимой ошибке:
R>
R>enum class EE {
R> a, b, c, d
R>};
R>using EE_sequence = std::integer_sequence<EE, EE::a, EE::b, EE::c, EE::d>;
R>static_assert(EE::a == min_element<EE_sequence>::value);
R>
Проблема этого кода в том, что EE не зависит от EE_sequence, а потому добавление нового значения в EE приводит к необнаружимой ошибке:
enum class EE {
a, b, c, d, e = -1
};
using EE_sequence = std::integer_sequence<EE, EE::a, EE::b, EE::c, EE::d>;
static_assert(EE::a == min_element<EE_sequence>::value);
Re[16]: enum class and if expression
Здравствуйте, rg45, Вы писали:
R>
Проблема этого кода в том, что EE не зависит от EE_sequence, а потому добавление нового значения в EE приводит к необнаружимой ошибке:
А теперь представте, что EE используется для: конвертации в индекс массива функций обработки сообщений, конвертации в строку для лога и конвертацию в int для id сообщения — все эти последовательности придётся править руками при добавлении нового значения в EE.
R>
R>enum class EE {
R> a, b, c, d
R>};
R>using EE_sequence = std::integer_sequence<EE, EE::a, EE::b, EE::c, EE::d>;
R>static_assert(EE::a == min_element<EE_sequence>::value);
R>
Проблема этого кода в том, что EE не зависит от EE_sequence, а потому добавление нового значения в EE приводит к необнаружимой ошибке:
enum class EE {
a, b, c, d, e = -1
};
using EE_sequence = std::integer_sequence<EE, EE::a, EE::b, EE::c, EE::d>;
static_assert(EE::a == min_element<EE_sequence>::value);
А теперь представте, что EE используется для: конвертации в индекс массива функций обработки сообщений, конвертации в строку для лога и конвертацию в int для id сообщения — все эти последовательности придётся править руками при добавлении нового значения в EE.