Сообщение Re: Кому компил-тайма отсыпать? от 27.04.2025 6:49
Изменено 27.04.2025 7:13 rg45
Re: Кому компил-тайма отсыпать?
Здравствуйте, Shmj, Вы писали:
S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:
Продолжаешь демонстрировать глупость.
S>И вопрос — как такое отлаживать по шагам?
Нет, первый вопрос не этот. Первый вопрос — какие задачи решает данный инструмент. И если на этот вопрос имеется ответ, то второй вопрос отправляется отдыхать, как дурацкий. Как отладить и покрыть тестами тот или иной инструмент, всегда можно найти способы. Поэлементно, как же ещё.
P.S. А вообще, чувствуется дрожащая рука чайника. Можно было и проще, и надежнее. Простой пример, следовало бы написать вот так:
А у него calc_v никак не защищен. И при ошибках юзверя компилер будет тыкать в "плохой" calc_v, а не юзверю в его говно.
И с литералом перемудрили. Не нашли другого способа, как задавать компайл-тайм строки, капец. И вообще, весь код по-чайниковски написан.
S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:
Продолжаешь демонстрировать глупость.
S>И вопрос — как такое отлаживать по шагам?
Нет, первый вопрос не этот. Первый вопрос — какие задачи решает данный инструмент. И если на этот вопрос имеется ответ, то второй вопрос отправляется отдыхать, как дурацкий. Как отладить и покрыть тестами тот или иной инструмент, всегда можно найти способы. Поэлементно, как же ещё.
P.S. А вообще, чувствуется дрожащая рука чайника. Можно было и проще, и надежнее. Простой пример, следовало бы написать вот так:
template<ValidExpr Lit>
struct calc {
/* . . . */
};
//---------------------------------------------------------------------
// 6. Утилита-alias для SFINAE-френдли value-типа
//---------------------------------------------------------------------
template<ValidExpr Lit>
using calc_v = std::integral_constant<unsigned long long, calc<Lit>::value>;А у него calc_v никак не защищен. И при ошибках юзверя компилер будет тыкать в "плохой" calc_v, а не юзверю в его говно.
И с литералом перемудрили. Не нашли другого способа, как задавать компайл-тайм строки, капец. И вообще, весь код по-чайниковски написан.
Re: Кому компил-тайма отсыпать?
Здравствуйте, Shmj, Вы писали:
S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:
Продолжаешь демонстрировать глупость.
S>И вопрос — как такое отлаживать по шагам?
Нет, первый вопрос не этот. Первый вопрос — какие задачи решает данный инструмент. И если на этот вопрос имеется ответ, то второй вопрос отправляется отдыхать, как дурацкий. Как отладить и покрыть тестами тот или иной инструмент, всегда можно найти способы. Поэлементно, как же ещё.
P.S. А вообще, чувствуется дрожащая рука чайника. Можно было и проще, и надежнее. Простой пример, следовало бы написать вот так:
А у него calc_v вообще не защищен никакими констрейнтами. И при ошибках юзверя компилер будет тыкать грязным пальцем в "плохой" calc_v, а не юзверю в его говно.
И с литералом перемудрили. Не нашли другого способа, как задавать компайл-тайм строки, капец. И вообще, весь код по-чайниковски написан.
S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:
Продолжаешь демонстрировать глупость.
S>И вопрос — как такое отлаживать по шагам?
Нет, первый вопрос не этот. Первый вопрос — какие задачи решает данный инструмент. И если на этот вопрос имеется ответ, то второй вопрос отправляется отдыхать, как дурацкий. Как отладить и покрыть тестами тот или иной инструмент, всегда можно найти способы. Поэлементно, как же ещё.
P.S. А вообще, чувствуется дрожащая рука чайника. Можно было и проще, и надежнее. Простой пример, следовало бы написать вот так:
template<ValidExpr Lit>
struct calc {
/* . . . */
};
//---------------------------------------------------------------------
// 6. Утилита-alias для SFINAE-френдли value-типа
//---------------------------------------------------------------------
template<ValidExpr Lit>
using calc_v = std::integral_constant<unsigned long long, calc<Lit>::value>;А у него calc_v вообще не защищен никакими констрейнтами. И при ошибках юзверя компилер будет тыкать грязным пальцем в "плохой" calc_v, а не юзверю в его говно.
И с литералом перемудрили. Не нашли другого способа, как задавать компайл-тайм строки, капец. И вообще, весь код по-чайниковски написан.