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

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

Изменено 27.04.2025 7:42 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/087c26dd2aa7c267
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/087c26dd2aa7c267. И сделать этот парсер применимым как в компайл-, так и в рантайм.