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

Сообщение Re: Кому компил-тайма отсыпать? от 27.04.2025 6:49

Изменено 27.04.2025 7:56 rg45

Re: Кому компил-тайма отсыпать?
Здравствуйте, Shmj, Вы писали:

S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:


Продолжаешь демонстрировать непонимание.

S>И вопрос — как такое отлаживать по шагам?


Нет, первый вопрос не этот. Первый вопрос — какие задачи решает данный инструмент. И если на этот вопрос имеется ответ, то второй вопрос отправляется отдыхать, как дурацкий. Как отладить и покрыть тестами тот или иной инструмент, всегда можно найти способы. Поэлементно, как же ещё.

P.S. Ну и вообще, во всём здесь чувствуется дрожащая рука чайника. Накрутили-перемудрили.

Во-первых, calc_v тоже следовало бы защитить констрейнтом:

template<auto Lit>
requires ValidExpr<Lit>
using calc_v = std::integral_constant<unsigned long long, calc<Lit>::value>;


Чтобы при ошибках пользователя компилер тыкал своим толстым пальцем в ошибки пользователя, а не в "плохой" calc_v.

Во-вторых, с литералом перемудрили — использовали нестандартное расширение. Не нашли другого способа, как задать компайл-тайм строку, блин. Я думаю, можно было тот же std::string заюзать, при нормально заточенных руках: https://coliru.stacked-crooked.com/a/2a403be350ebf997. И сделать этот парсер применимым как в компайл-, так и в рантайм. И тогда любой Шмж мог бы проитись по этому коду с дорогим его сердцу интегрированным отладчиком.
Re: Кому компил-тайма отсыпать?
Здравствуйте, Shmj, Вы писали:

S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:


Продолжаешь демонстрировать непонимание.

S>И вопрос — как такое отлаживать по шагам?


Нет, первый вопрос не этот. Первый вопрос — какие задачи решает данный инструмент. И если на этот вопрос имеется ответ, то второй вопрос отправляется отдыхать, как дурацкий. Как отладить и покрыть тестами тот или иной инструмент, всегда можно найти способы. Поэлементно, как же ещё.

P.S. Ну и вообще, во всём здесь чувствуется дрожащая рука чайника. Накрутили-намудрили.

Во-первых, calc_v тоже следовало бы защитить констрейнтом:

template<auto Lit>
requires ValidExpr<Lit>
using calc_v = std::integral_constant<unsigned long long, calc<Lit>::value>;


Чтобы при ошибках пользователя компилер тыкал своим толстым пальцем в ошибки пользователя, а не в "плохой" calc_v.

Во-вторых, с литералом перемудрили — использовали нестандартное расширение. Не нашли другого способа, как задать компайл-тайм строку, блин. Я думаю, можно было тот же std::string заюзать, при нормально заточенных руках: https://coliru.stacked-crooked.com/a/2a403be350ebf997. И сделать этот парсер применимым как в компайл-, так и в рантайм. И тогда любой Шмж мог бы проитись по этому коду с дорогим его сердцу интегрированным отладчиком.