Здравствуйте, Shmj, Вы писали:
S>Тут дело вот в чем. Если вы выбираете C++, то вам нужно не только писать но и читать. В том числе логику на основе SFINAE.
Логика на основе SFINAE потеряла актуальность с приходом концептов. А технику с использованием sizeof для селекции типов, пример которой ты где-то тут приводил, перестали активно использовать ещё во времена C++03, ибо, как правило, находилось более привлекательное решение. Так что, ты пытаешься делать далеко идущие выводы на основании устаревших и неполных знаний.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
S>>Тут дело вот в чем. Если вы выбираете C++, то вам нужно не только писать но и читать. В том числе логику на основе SFINAE.
R>Логика на основе SFINAE потеряла актуальность с приходом концептов. А технику с использованием sizeof для селекции типов, пример которой ты где-то тут приводил, перестали активно использовать ещё во времена C++03, ибо, как правило, находилось более привлекательное решение. Так что, ты пытаешься делать далеко идущие выводы на основании устаревших и неполных знаний.
Причем тут это? Старый код а так же старые привычки никуда не делись. Если вам встретится такой код — придется уметь его читать — будешь же говорить — я ничерта тут не понимаю, т.к. так уже никто не пишет.
Здравствуйте, Shmj, Вы писали:
S>Причем тут это? Старый код а так же старые привычки никуда не делись. Если вам встретится такой код — придется уметь его читать — будешь же говорить — я ничерта тут не понимаю, т.к. так уже никто не пишет.
Подожди, так мы что здесь обсуждаем — проблемы С++, или чьи-то вредные привычки?
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
S>>Причем тут это? Старый код а так же старые привычки никуда не делись. Если вам встретится такой код — придется уметь его читать — будешь же говорить — я ничерта тут не понимаю, т.к. так уже никто не пишет.
R>Подожди, так мы что здесь обсуждаем — проблемы С++, или чьи-то вредные привычки?
Код, который требуется доработать — вполне может включать части, написанные n лет назад с требованием поддержки старых версий C++ без концептов. И если ты позиционируешься как C++-девелопер — никак не отвертишься — это нужно знать и понимать.
Здравствуйте, Shmj, Вы писали:
S>Код, который требуется доработать — вполне может включать части, написанные n лет назад с требованием поддержки старых версий C++ без концептов. И если ты позиционируешься как C++-девелопер — никак не отвертишься — это нужно знать и понимать.
И как это согласуется с заголовком темы?
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Shmj, Вы писали:
S>Концепты решили лишь часть проблем, по прежнему на компил-тайме пытаются и пытаются делать разные изрвраты.
Почему пытаются? Успешно делают.
И с точки зрения механики языка оно может и изврат (субъективно), но работает и приносит пользу.
Твои стенания о том, что это сложно, но это тоже субъективно — мне не сложно, а тебе лучше не связываться с C++. Подстраиваться под низкий уровень никто не будет.
Здравствуйте, rg45, Вы писали:
S>>Концепты решили лишь часть проблем, по прежнему на компил-тайме пытаются и пытаются делать разные изрвраты. R>Это твоё личное мнение, или это уже точно?
Я же дал ссылку.
Что мешает добавить в компил-тайм хотя бы те же статик-переменные внутри функции?
Здравствуйте, andrey.desman, Вы писали:
AD>Твои стенания о том, что это сложно, но это тоже субъективно — мне не сложно, а тебе лучше не связываться с C++. Подстраиваться под низкий уровень никто не будет.
Сейчас уже не субъективно. Раз его не может решить GPT — то это объективно сложно.
Это ранее мы могли спорить субъективно ли, вдруг автор имел другое в виду — а сейчас можем проверить на 100% однозначно и точно.
Здравствуйте, Shmj, Вы писали:
S>>>Концепты решили лишь часть проблем, по прежнему на компил-тайме пытаются и пытаются делать разные изрвраты. R>>Это твоё личное мнение, или это уже точно?
S>Я же дал ссылку.
Ссылку на моё собственное сообщение? Зачем? Вопрос же в обосновании твоего эпитета "изврат".
S>Что мешает добавить в компил-тайм хотя бы те же статик-переменные внутри функции?
Не уверен, что понял твою проблему.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Shmj, Вы писали:
S>Сейчас уже не субъективно. Раз его не может решить GPT — то это объективно сложно.
Почему мерилом ты выбрал "gpt", а не Мейерса, например? Потому что тебе так захотелось — это и есть субъективщина.
S>Это ранее мы могли спорить субъективно ли, вдруг автор имел другое в виду — а сейчас можем проверить на 100% однозначно и точно.
По этому форуму мы можем проверить, и уже не раз убедились, но не то, что тебе кажется.
Слушай, таких решалок и решал проблем С++ было дохрена. И не только через полностью новые ЯП. Вот помню, была какая-то инициатива, то ли Саттера, то ли ещё кого -"переизобретаем С++ без UB", как-то так. Проблема всех этих инициатив в том, что уже есть куча кодовой базы и спецы, которые наступили на множество граблей и знают, как их обходить. А для новых языков этого нет, и никто не хочет рисковать с новоделом. В случае экспериментальных проектов даже до разработки чего-то более сложного, чем "здравствуй, мир", строк так на 10К дело не доходит. Т.е. это максимум на дипломную и пару-тройку статей тянет.
В какой заднице ты находишь этот говнокод? Это Chat GPT тебе выдаёт эти "шедевры"?
По своему скудоумию данное решение может соперничать, разве что, с тупой постановкой задачи — продетектить наличие члена с именем find, безотносительно того, функция ли это, данное или тип.
Но даже в такой тупой постановке, даже на C++03, эта задача могла быть решена более компактно и элегантно. На С++11 — ещё более компактно и элегантно. На С++20 это решение в три строчки:
И даже эти три строчки, повторюсь, пришлось писать исключительно как дань тупизне постановки задачи. На самом деле, как мне кажется, автора интересовало, всё-таки наличие функции-члена find (шаблонной или нешаблонной). И в этом случае решение могло бы выглядеть как нельзя более естественно и лаконично:
А если вспомнить, что С++ позволяет непосредственно использовать констрейнты, без определения концептов, то, возможно, вообще ничего писать не пришлось бы. Тут уже чисто предпочтения программиста — насколько он хочет, чтоб код выглядел самодокументированным.
А вот так могло бы выглядть это же решение на С++03: http://coliru.stacked-crooked.com/a/dcdb0473b3c69a03. Не настолько элегантно и лаконично, как на С++20, конечно, но по-любому лучше, чем та порнота, которую ты притащил.
А теперь подумай и скажи, действительно ли это проблема С++? Может, дело, все-таки, в твоем бедном уровне владения С++, которое не позволяет тебе распознать откровенный говнокод? Глядя на какой-нибудь код, ты не понимаешь, что данную задачу можно решать разными способобами, что этих способов может быть несколько, что у каждого из этих способов есть свои плюсы и свои минусы. Но при этом ты назойливо поднимаешь и поднимаешь одну и ту же тему, предлагая что-то улучшать.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
R>Ссылку на моё собственное сообщение? Зачем? Вопрос же в обосновании твоего эпитета "изврат".
Тогда сам мне скажи — считаешь ли что твой (как и любой другой, по сути) код счетчика в компил-тайм — не изврат. Просто скажи и я поверю тебе на слово.