Здравствуйте, Shmj, Вы писали:
S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:
Продолжаешь демонстрировать непонимание. Путаешь цели и средства.
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 заюзать, при нормально заточенных руках и сделать этот парсер применимым как в компайл-, так и в ран-тайме:
И тогда любой Шмж мог бы проитись по этому коду с дорогим его сердцу интегрированным отладчиком.
В-третьих, расширямость и декомпозиция задач в реализации этого инструмента оставляет желать лучшего. Копипаста там и сям. Взгляни, например, на term и expr — они же совпадают чуть ли не полностью. Не хватило мозгов (или желания) отделить специфику и приоритеты операций от общего парсинга. Я уже молчу про AST, построение которого, по-хорошему, следовало бы отделить от вычислений.
Тебе кажется, что если тебе попался какой-то код с шаблонами, который тебе трудно понять, то это повод пойти на РСДН и что-то предъявить? Нет, дорогой, профессионализм — это способность делать сложные вещи просто, а не простые сложно.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Shmj, Вы писали:
S>Вот вам парсер-калькулятор строк в компил-тайме, все как вы любите:
S>И вопрос — как такое отлаживать по шагам?
Также, как я ядро Линукса, например. Тот, кто такое может написать, тот и отладить сможет. А кто не может, тому надо сначала научиться писать, а потом уже отлаживать.
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, Doom100500, Вы писали:
D>>Нихрена не понял, зачем всё это? Разве так не компайл таим?
S>Так то ж из строки — можете добавить свои кастомные операторы, к примеру. Возможно даже свой Python закодить.
Это ж из compile-time строки. Т.е. строки — прямо написанной в коде. Не прочитанной из конфига, не полученное по апи. Захардоженнная строка.
Зачем в compile-time разгребать строки с арифметическими выражениями, если можно, вместо строки, тожно также захардкодить выражение.
Смысл этого только академический — такой-же, как и в compile-time факториале. Для того, чтобы сказать: "смотрите как я умею"
Здравствуйте, Shmj, Вы писали:
R>>Ты дорасти сперва, хотя бы до уровня джуна, потом рассказывай, что плохо, что хорошо.
S>Ваши оценки — основаны на личности и авторитете. Я же призываю вас смотреть не кто говорит — а что говорит.
Так мы и смотрим не на то, кто ты, а на то, что ты несёшь. А несёшь ты дичь
Здравствуйте, rg45, Вы писали:
R>На каой, нафиг, личности. Я, вот именно смотрю на то, ЧТО ты говоришь. А говоришь ты дичайшую дичь. Но это хрен бы с ним, кажжый может заблуждаться. Но ты же преподносишь свое мракобесие, как истину в последней инстанции. Вот точно, все высказывания космичесого масштаба и космической же глупости. И насрать тебе на многочисленные просьбы не загаживать профильный форум.
Здравствуйте, rg45, Вы писали:
S>>Под средний уровень — т.е. уровень условного Java. Вполне себе можно так писать без ущерба для скорости и качества. R>А у тебя есть сертификат на определение "уровней"? Нет? Ну и гуляй.
Ох, вам опять признак соц. доминирования подавай. А логически подумать?
Здравствуйте, Shmj, Вы писали:
S>Под средний уровень — т.е. уровень условного Java. Вполне себе можно так писать без ущерба для скорости и качества.
Ты, пряник охреневший, с чего взял, что ты имеешь какое-то отношение к "среднему уровню" C++ разработчика? Твой уровень — младший околоплинтусный — засохни и не оствечивай.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Shmj, Вы писали:
R>>Ты, пряник охреневший, с чего взял, что ты имеешь какое-то отношение к "среднему уровню" C++ разработчика? Твой уровень — младший околоплинтусный — засохни и не оствечивай.
S>Ну опять примативизм ваш — вы же знаете что мне это не интересно.
Самое интересное, что только такой тон вызывает у тебя хоть какой-то отклик. Нормальные слова от тебя отскакивают, как теннисный мячик от бетонной плиты.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
R>Да сколько раз я уже зарекался. ХЗ, как ему удаётся меня провоцировать. В этом деле он просто магистр.
Не знаю, как там у тебя в реале, а на форуме это (спровоцировать тебя)не выглядит непосильной задачей. Воинствующее невежество a.k.a. "у меня свой вектор и строка, потому что std — говно" тоже тебя выводит на конфликт легко.
Я не осуждаю и не говорю, что ты неправильно делаешь, мне и самому хочется напхать периодически. Но мне лично будет жаль, если ты отлетишь опять.
Здравствуйте, rg45, Вы писали:
R>Тебе кажется, что если тебе попался какой-то код с шаблонами, который тебе трудно понять, то это повод пойти на РСДН и что-то предъявить?
это больно похоже на ChatGPT. И относится к этому надо так же. Сейчас любой Шимжа (не в обиду будь сказано) сможет наваять такой код, но не сможет его отлаживать Ну может это и не надо. Тут задача не такая сложная, тут ИИ вполне может довести до финального решения.
Здравствуйте, sergii.p, Вы писали:
SP>это больно похоже на ChatGPT. И относится к этому надо так же. Сейчас любой Шимжа (не в обиду будь сказано) сможет наваять такой код, но не сможет его отлаживать
Я уж было подумал, что он сам его написал. Если б сам — то респект, ибо наконец-то освоил ЯП на должном уровне, и не важно, что нет практического применения данному коду или что он не идеален — уже за одно только развитие в освоении языка можно похвалить.
Если не сам написал — то зачем сюда это принёс? Чтобы спросить, как это отлаживать? Ну так и надо было тему озаглавить, а то сейчас выглядит будто "я что-то написал и могу поделиться этим со всеми — вот только я не знаю, как это работает и как это отлаживать"
Здравствуйте, Doom100500, Вы писали:
D>>>Нихрена не понял, зачем всё это? Разве так не компайл таим? S>>Так то ж из строки — можете добавить свои кастомные операторы, к примеру. Возможно даже свой Python закодить.
D>Это ж из compile-time строки. Т.е. строки — прямо написанной в коде. Не прочитанной из конфига, не полученное по апи. Захардоженнная строка. D>Зачем в compile-time разгребать строки с арифметическими выражениями, если можно, вместо строки, тожно также захардкодить выражение. D>Смысл этого только академический — такой-же, как и в compile-time факториале. Для того, чтобы сказать: "смотрите как я умею"
Подъедет "#embed" — можно будет разбирать то, что во внешнем ресурсе содержится.
Здравствуйте, flаt, Вы писали:
F>Если не сам написал — то зачем сюда это принёс? Чтобы спросить, как это отлаживать? Ну так и надо было тему озаглавить, а то сейчас выглядит будто "я что-то написал и могу поделиться этим со всеми — вот только я не знаю, как это работает и как это отлаживать"
Ну, о его мотивации можно догадаться по первому же предложению: "все как вы любите". Он пришёл с очередным риторическим вопросом. Мол, видите, отлаживаться невозможно, значит, говно этот ваш компайл-тайм, шаблоны говно и С++ тоже.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, McQwerty, Вы писали:
D>>Это ж из compile-time строки. Т.е. строки — прямо написанной в коде. Не прочитанной из конфига, не полученное по апи. Захардоженнная строка. D>>Зачем в compile-time разгребать строки с арифметическими выражениями, если можно, вместо строки, тожно также захардкодить выражение. D>>Смысл этого только академический — такой-же, как и в compile-time факториале. Для того, чтобы сказать: "смотрите как я умею"
MQ>Подъедет "#embed" — можно будет разбирать то, что во внешнем ресурсе содержится.
Здравствуйте, rg45, Вы писали:
R>Ну, о его мотивации можно догадаться по первому же предложению: "все как вы любите". Он пришёл с очередным риторическим вопросом. Мол, видите, отлаживаться невозможно, значит, говно этот ваш компайл-тайм, шаблоны говно и С++ тоже.
Вообще C++ возможен и без неудобоваримых компил-таймовых конструкций. И тогда он довольно не плох. Основной плюс — можно написать код и использовать на всех 6-ти платформах из всех ЯП без заморочек + на всех архитектурах. И это 100% работает — я так делал.
А вот можно ли на других языках — на том же C# — ну покажите мне библитоеку, которая достигла такого уровня. Не верю. Чтобы реально компилилась под все платформы и ее использовали — не была от 50 МБ размером — не верю.
На Rust вроде можно, но тоже не факт что все гладко. Да и сам Rust как язык — ничем не лучше.
Здравствуйте, Muxa, Вы писали:
S>>Вообще C++ возможен и без неудобоваримых компил-таймовых конструкций. M>А их обязательно использовать или по желанию?
По желанию. Причем многие уже не актуальны в связи с введением упрощающих конструкций в новых версиях.
Здравствуйте, Marty, Вы писали:
S>>Ваши оценки — основаны на личности и авторитете. Я же призываю вас смотреть не кто говорит — а что говорит. M>Так мы и смотрим не на то, кто ты, а на то, что ты несёшь. А несёшь ты дичь
Вообще вопрос личности поднимать не нужно — говори по сути. По сути что хотел сказать? В чем дичь?
Ты доказал что являешься гомо и умеешь встраиваться в соц. иерархию (п. 3 по Савельеву — соц. доминирование). А теперь докажи что ты сапиенс: https://rsdn.org/forum/design/8928077.1
Здравствуйте, Shmj, Вы писали:
S>>>Ваши оценки — основаны на личности и авторитете. Я же призываю вас смотреть не кто говорит — а что говорит. M>>Так мы и смотрим не на то, кто ты, а на то, что ты несёшь. А несёшь ты дичь
S>Вообще вопрос личности поднимать не нужно — говори по сути. По сути что хотел сказать? В чем дичь?
Вообще вопрос личности незачем поднимать. Твои посты можно обезличено давать как тесты на собесах.
S>Ты доказал что являешься гомо и умеешь встраиваться в соц. иерархию (п. 3 по Савельеву — соц. доминирование).
Белый прыщплащ? Паришь над схваткой, и всё вот это? В принципе, стратегия беспроигрышная. Можно пороть любую херню и говорить, что сапиенс, а кто херню твою не приемлет, того обзывать гомами. Тут один клоун этим пытается пользоваться, от него научился?
Здравствуйте, Shmj, Вы писали:
S>Ваши оценки — основаны на личности и авторитете. Я же призываю вас смотреть не кто говорит — а что говорит.
На каой, нафиг, личности. Я, вот именно смотрю на то, ЧТО ты говоришь. А говоришь ты дичайшую дичь. Но это хрен бы с ним, кажжый может заблуждаться. Но ты же преподносишь свое мракобесие, как истину в последней инстанции. Вот точно, все высказывания космичесого масштаба и космической же глупости. И насрать тебе на многочисленные просьбы не загаживать профильный форум.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Shmj, Вы писали:
R>>На каой, нафиг, личности. Я, вот именно смотрю на то, ЧТО ты говоришь. А говоришь ты дичайшую дичь. Но это хрен бы с ним, кажжый может заблуждаться. Но ты же преподносишь свое мракобесие, как истину в последней инстанции. Вот точно, все высказывания космичесого масштаба и космической же глупости. И насрать тебе на многочисленные просьбы не загаживать профильный форум.
S>Конкретизируй.
. И ещё стопитсот миллионов раз. Ты же не умеешь слушать других — ты умеешь только говорить. Как полоумная старуха, которая бормочет-бормочет и никого не слышит.
Сколько раз просил тебя — не загаживай профильный формум. Нет, ты опять принёс очередную "концепцию". Которая, если присмотреться, совпадает с предыдушей: "то, на что у Шмж хватило мозгов — это хороший си-плюс-плюс, а остальной — плохой".
Все твои "концепции" исходят из твоих невежаства и лени. Вот тебе и вся конкретика. Впрочем, это я уже тоже писал.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
R>Сколько раз просил тебя — не загаживай профильный формум. Нет, ты опять принёс очередную "концепцию". Которая, если присмотреться, совпадает с предыдушей: "то, на что у Шмж хватило мозгов — это хороший си-плюс-плюс, а остальной — плохой".
Язык должен быть прост и понятен всем — если можно написать проще — то зачем усложнять? Ребусы — это в отдельном разделе.
Здравствуйте, Shmj, Вы писали:
S>Язык должен быть прост и понятен всем — если можно написать проще — то зачем усложнять? Ребусы — это в отдельном разделе.
Никто тебе ничего не должен. То, что тебе кажется сложным — это только твои проблемы, больше ни чьи.
Какой-нибудь ракушке со дна морского сложным покажется даже "Hello World". Так что теперь, под ракушку будем подстраиваться?
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Shmj, Вы писали:
S>Язык должен быть прост и понятен всем — если можно написать проще — то зачем усложнять? Ребусы — это в отдельном разделе.
Здравствуйте, rg45, Вы писали:
R>Какой-нибудь ракушке со дна морского сложным покажется даже "Hello World". Так что теперь, под ракушку будем подстраиваться?
Под средний уровень — т.е. уровень условного Java. Вполне себе можно так писать без ущерба для скорости и качества.
Здравствуйте, rg45, Вы писали:
S>>Под средний уровень — т.е. уровень условного Java. Вполне себе можно так писать без ущерба для скорости и качества. R>Ты, пряник охреневший, с чего взял, что ты имеешь какое-то отношение к "среднему уровню" C++ разработчика? Твой уровень — младший околоплинтусный — засохни и не оствечивай.
Ну опять примативизм ваш — вы же знаете что мне это не интересно.
Здравствуйте, rg45, Вы писали:
R>>>Ты, пряник охреневший, с чего взял, что ты имеешь какое-то отношение к "среднему уровню" C++ разработчика? Твой уровень — младший околоплинтусный — засохни и не оствечивай. R>Самое интересное, что только такой тон вызывает у тебя хоть какой-то отклик. Нормальные слова от тебя отскакивают, как теннисный мячик от бетонной плиты.
Да, и да.
Слушай, вот ты же, к примеру, в политику не заходишь. Вот просто не корми этого клоуна. Оно, хоть и хвастало тем, что не собака и в похвале не нуждается, но сюда ходит за вниманием, не важно какого знака. Видимо, в реале он "очень нужный никому человек".
А то тебя опять забанят за излишнюю экспрессию, а в С++ разделе от кого пользы набраться можно — раз-два и обчёлся. Тебя и ещё пару человек убрать, и подфорум потеряет всякий смысл. Останутся недоучки, которые вечно недовольны, но не собой, а языком почему-то, мечтатели об идеале и странные ребята, которые пишут на других языках, С++ не знают, а сюда заходят самоутвердиться (ну, им так кажется). А хочется всё-таки, хоть изредка читать что-то, что обрадует ощущением "о, сегодня я узнал что-то новое".