Re[2]: C++ времени компиляции - как отлаживать?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.07.23 16:09
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Лично я считаю, что код времени компиляции в общем случае это плохо.


Только то убожество, до которого довели современный C++. Я уже много раз писал (последний раз — здесь
Автор: Евгений Музыченко
Дата: 09.01.22
), что сама идея и макросов, и шаблонов сама по себе не предполагает непременно функционального принципа обработки. Она может быть и процедурно-функциональной, и даже чисто процедурной, где проблем с пониманием логики работы и отладкой почти не возникает, а объем и сложность кода, генерируемого на этапе компиляции, могут быть гораздо выше (те же разнообразные таблицы).

vsb>Тот же static assert идеален там, где и без него вылезет ошибка.


Это как? Вот есть, например, enum с набором констант, и есть таблицы, которые этими константами индексируются. Если не ставить возле каждой таблицы конструкцию вроде static_assert (LengthOfArray (Table) == Enum::Total), то где именно "вылезет ошибка"?

vsb>Если хочется делать что-то сложное до компиляции, то надо генерировать исходный код. Т.е. написать отдельную программу, которая будет генерировать код.


Именно это и делается в C++, только для написания "отдельной программы" предлагается настолько жуткий встроенный язык, что часто действительно оказывается проще использовать другой.

vsb>То, что что-то можно сделать, не означает, что это нужно делать.


Увы, парадигма C++ уже давно от этого ушла.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.