), что экземпляры Field, переданные в конструктор Row, имеют параметр шаблона FieldOrder в том же порядке, что и класс перечисления FieldOrder?
Например, приведенный выше код будет компилироваться, а следующий код не удастся:
int main() { Row row{Field(1, "Integers"s), Field(2.0, "Doubles"s), Field('A', "Chars"s)};
return 0; } [/code] Есть ли способ гарантировать во время компиляции ([code]static_assert[/code]), что экземпляры Field, переданные в конструктор Row, имеют параметр шаблона FieldOrder в том же порядке, что и класс перечисления FieldOrder? Например, приведенный выше код будет компилироваться, а следующий код не удастся: [code] Row row{Field(1, "Integers"s), Field(2.0, "Doubles"s), Field('A', "Chars"s)}; [/code] Примечания: [list] [*]Пробел также будет ошибкой. Класс перечисления используется в том виде, в котором он отображается, начиная с 0 и далее подряд.
[*]Мне не интересно знать, хороший ли это подход, я уже использовал другой подход, но мне все еще интересно, возможно ли это.