Re[7]: Концепция умного C++
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.25 12:00
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

M>>Она очень проста в использовании


ЕМ>Проста, не спорю. Но очень уж уродлива.


Чего уродливого в std::string или std::vector?
Или в сортировке, например: std::stable_sort(v.begin(), v.end())?
Маньяк Робокряк колесит по городу
Re[5]: Концепция умного C++
От: _NN_  
Дата: 18.04.25 12:11
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

M>>А внутрь заглядывать пробовал?


ЕМ>Именно потому и не использую — ни ее, ни подобные.


А что используется ?
Неужто в каждом проекте заново изобретается вектор ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[8]: Концепция умного C++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 12:32
Оценка:
Здравствуйте, Marty, Вы писали:

M>Чего уродливого в std::string или std::vector?


В концепциях — ничего. Уродлива реализация.
Re[6]: Концепция умного C++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 12:34
Оценка: :)
Здравствуйте, _NN_, Вы писали:

_NN>А что используется ?


Свою библиотеку базовых средств. У меня потребности скромные, я даже динамические строки лишь недавно добавил.
Re[9]: Концепция умного C++
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.25 12:37
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

M>>Чего уродливого в std::string или std::vector?


ЕМ>В концепциях — ничего. Уродлива реализация.


Что именно уродливого в реализации? И какая тебе, как пользователю, разница, что там под капотом?
Маньяк Робокряк колесит по городу
Re[7]: Концепция умного C++
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.25 12:38
Оценка: +1 :)
Здравствуйте, Евгений Музыченко, Вы писали:

_NN>>А что используется ?


ЕМ>Свою библиотеку базовых средств. У меня потребности скромные, я даже динамические строки лишь недавно добавил.


Покажи же нам эту прекрасную библиотеку, хоть кусочек, чтобы мы восхитились и поняли, что std — говно
Маньяк Робокряк колесит по городу
Re: Концепция умного C++
От: rudzuk  
Дата: 18.04.25 13:55
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Встречалась ли вам концепция — "C++ как C с классами". Т.е. когда правила кодирования устанавливают запрет на множество фич, которые есть в языке, но которые часто запутывают код и делают сложным для восприятия — сводят фактически к C, но с удобным синтаксисом для RAII. Однако же указатели и пр. — используются все как в C.


S> B здесь главное не поддаться греху гордыни — когда тебе хочется доказать другим что ты способен, что SFINAE и 4-х этажные шаблоны тебе по плечу. А нужно не поддаваться греху гордыни а наоборот проявить смирение и кротость — аскетизм. Ограничить себя в излишествах и довольствоваться простым минимализмом.

S>


Не поддавайся греху гордыни, пиши на Паскале!
avalon/3.0.2
Re[2]: Концепция умного C++
От: serg_joker Украина  
Дата: 18.04.25 15:00
Оценка:
Здравствуйте, rg45, Вы писали:

R>У меня вопрос другой: ты нахрена опять профильный форум загаживаешь своей трепологией? Тебе КСВ мало?

Он будет делать это столько, сколько ему будут отвечать, даже если его говном поливать будут. Иногда складывается впечатление, что *особенно* если говном поливать будут.
Re[3]: Концепция умного C++
От: rg45 СССР  
Дата: 18.04.25 15:31
Оценка:
Здравствуйте, serg_joker, Вы писали:

_>Он будет делать это столько, сколько ему будут отвечать, даже если его говном поливать будут. Иногда складывается впечатление, что *особенно* если говном поливать будут.


Да, я полностью с тобой согласен. Но не вестись на эти провокации у меня не получается почему-то.
--
Справедливость выше закона. А человечность выше справедливости.
Re[4]: Концепция умного C++
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.25 15:35
Оценка:
Здравствуйте, rg45, Вы писали:

_>>Он будет делать это столько, сколько ему будут отвечать, даже если его говном поливать будут. Иногда складывается впечатление, что *особенно* если говном поливать будут.


R>Да, я полностью с тобой согласен. Но не вестись на эти провокации у меня не получается почему-то.


Я первый виноват
Маньяк Робокряк колесит по городу
Re[10]: Концепция умного C++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 17:11
Оценка:
Здравствуйте, Marty, Вы писали:

M>Что именно уродливого в реализации?


Те самые шаблонные трюки, о которых мы много говорили.

M>какая тебе, как пользователю, разница, что там под капотом?


Мне не нравится, когда при моих непреднамеренных ошибках все это говно вспучивает из-под капота, и мне приходится разглядывать многострочные, но маловразумительные тексты, чтобы догадаться, что же именно пошло не так.

Да, то же самое происходит и с моими шаблонами, но с ними я хоть могу увидеть в исходниках свои комментарии, вроде "сюда нельзя числовой литерал без квалификатора типа".

Когда (точнее — если) это чудо научится нормально диагностировать ошибки, рассмотрю вопрос о пользовании им.
Re[8]: Концепция умного C++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 17:18
Оценка:
Здравствуйте, Marty, Вы писали:

M>Покажи же нам эту прекрасную библиотеку


Она далеко не прекрасная. Во многих местах она даже весьма кривая, ибо начиналась еще в конце 90-х, и с тех пор многократно дорабатывалась и переделывалась без стремления сохранить единство стиля. Ее достоинство в том, что она не стремится покрыть все мыслимые варианты применения, а ограничивается наиболее простыми и удобными. Ну и в том, что может использоваться как в пользовательском, так и в ядерном коде — для чего, собственно, и создавалась.

M>чтобы мы восхитились и поняли, что std — говно


Не понимаю, зачем нужно чем-то восхищаться (и вообще, с чем-то сравнивать), чтобы это понять? Если сам подход построения программ на трюках общепризнанно считается моветоном (и только для шаблонов C++ старательно обосновывается его исключительность), то говном автоматически становится все, что сделано на основе такого подхода.
Re[11]: Концепция умного C++
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.25 17:44
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

M>>Что именно уродливого в реализации?


ЕМ>Те самые шаблонные трюки, о которых мы много говорили.


Они под капотом, и пользователь с ними не сталкивается


M>>какая тебе, как пользователю, разница, что там под капотом?


ЕМ>Мне не нравится, когда при моих непреднамеренных ошибках все это говно вспучивает из-под капота, и мне приходится разглядывать многострочные, но маловразумительные тексты, чтобы догадаться, что же именно пошло не так.


Это проблема не языка, а отдельных компиляторов. Слышал, кстати, что Clang умеет более менее внятно сообщать об ошибках.


ЕМ>Да, то же самое происходит и с моими шаблонами, но с ними я хоть могу увидеть в исходниках свои комментарии, вроде "сюда нельзя числовой литерал без квалификатора типа".


ЕМ>Когда (точнее — если) это чудо научится нормально диагностировать ошибки, рассмотрю вопрос о пользовании им.


Проблема не в диагностике, а во внятных сообщениях об ошибках. Почему-то мейнстрим компиляторы не парятся внятно о них сообщать, это да.

Кстати, пользуясь случаем (c) хочу передать привет своим родным прорекламировать свою тулзу, которая из портянки сообщения MSVC делает более менее внятное сообщение:

umba-cl-msg — разбирает портянку от MSVC и делает сокращения, превращая сообщение во вполне вменяемое.

По ссылке, сорян, док никаких нет, только один пример разбора. Может, потом как-то руки дойдут дописать.

Вкрации, принимает ввод из STDIN, печатает в STDOUT. Я её обычно использую с файлами, используя в батниках перенаправление.

Релиза тоже нет, но если умеешь в CMake, то либо VSCode'ом, либо вижуалкой соберёшь.

Тулза заточена под MSVC, но с GCC тоже немного помогает
Маньяк Робокряк колесит по городу
Re[9]: Концепция умного C++
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.25 18:26
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

M>>Покажи же нам эту прекрасную библиотеку


ЕМ>Она далеко не прекрасная. Во многих местах она даже весьма кривая, ибо начиналась еще в конце 90-х, и с тех пор многократно дорабатывалась и переделывалась без стремления сохранить единство стиля. Ее достоинство в том, что она не стремится покрыть все мыслимые варианты применения, а ограничивается наиболее простыми и удобными. Ну и в том, что может использоваться как в пользовательском, так и в ядерном коде — для чего, собственно, и создавалась.


То есть, даже твой велосипед не является прекрасным, у него одно единственное достоинство — писал его лично ты, и поэтому знаешь его вдоль и поперёк. Но это достоинство только для тебя, а std и кучи других плюсовых библиотек являются универсальными для 99% случаев применения, и ими пользуется большинство разработчиков.


M>>чтобы мы восхитились и поняли, что std — говно


ЕМ>Не понимаю, зачем нужно чем-то восхищаться (и вообще, с чем-то сравнивать), чтобы это понять? Если сам подход построения программ на трюках общепризнанно считается моветоном (и только для шаблонов C++ старательно обосновывается его исключительность), то говном автоматически становится все, что сделано на основе такого подхода.


Сам процесс создания софта основан на всевозможных "трюках". Просто одни ты осилил, другие — не смог.
Маньяк Робокряк колесит по городу
Re[12]: Концепция умного C++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 18:41
Оценка:
Здравствуйте, Marty, Вы писали:

M>Они под капотом, и пользователь с ними не сталкивается


Пока не допустит где-то ошибки.

M>Это проблема не языка, а отдельных компиляторов.


Корень проблемы находится в языке. Компиляторы лишь в разной степени пытаются ее смягчать.

M>Слышал, кстати, что Clang умеет более менее внятно сообщать об ошибках.


Возможно. Но подбирать компилятор, лучше других умеющий заметать мусор под ковер — так себе идея.

M>Проблема не в диагностике, а во внятных сообщениях об ошибках.


Главная проблема в том, что в языке до сих пор нет внятных средств для построения сложных и одновременно понятных и надежных метаконструкций. Все остальное — лишь следствия.

M>Почему-то мейнстрим компиляторы не парятся внятно о них сообщать, это да.


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

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

M>прорекламировать свою тулзу, которая из портянки сообщения MSVC делает более менее внятное сообщение:


Спасибо, но сообщения MSVC об "обычных" ошибках меня вполне устраивают, а связываться с шаблонными библиотеками я остерегаюсь.
Re[10]: Концепция умного C++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 18:47
Оценка:
Здравствуйте, Marty, Вы писали:

M>даже твой велосипед не является прекрасным


У меня не было цели делать его прекрасным. Это просто рабочий инструмент. У меня и молоток не сверкает, и шуруповерт несколько потерт, а преобразователи напряжения и вовсе без корпусов.

M>у него одно единственное достоинство — писал его лично ты, и поэтому знаешь его вдоль и поперёк.


Я бы взял готовую библиотеку, универсальную для user/kernel, но в 90-х таких тупо не было, а потом их стали делать так же, как STL/Boost — на все случаи жизни, мне такое не надо.

M>кучи других плюсовых библиотек являются универсальными для 99% случаев применения, и ими пользуется большинство разработчиков.


Да и на здоровье, я ж не призываю от них отказываться. Многие вот кока-колу каждый день пьют, и им даже нравится.

M>Сам процесс создания софта основан на всевозможных "трюках".


Глупости. Трюки нужны или для реализации редких, сильно нестандартных вещей, для которых не удосужились сделать штатных средств, или для преодоления имманентных недостатков инструмента.
Re[13]: Концепция умного C++
От: rg45 СССР  
Дата: 18.04.25 19:31
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

M>>Они под капотом, и пользователь с ними не сталкивается


ЕМ>Пока не допустит где-то ошибки.


А можно какой-то реальный пример?

Я как-то затрудняюсь представить, какую нужно допустить ошибку, чтобы возникли затруднения с использованием std::string, или std::vector.
--
Справедливость выше закона. А человечность выше справедливости.
Re[14]: Концепция умного C++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 20:00
Оценка:
Здравствуйте, rg45, Вы писали:

R>Я как-то затрудняюсь представить, какую нужно допустить ошибку, чтобы возникли затруднения с использованием std::string, или std::vector.


У этих с ошибками проще, но они не живут без поддержки плюсовых исключений.
Re[15]: Концепция умного C++
От: rg45 СССР  
Дата: 18.04.25 20:05
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

R>>Я как-то затрудняюсь представить, какую нужно допустить ошибку, чтобы возникли затруднения с использованием std::string, или std::vector.


ЕМ>У этих с ошибками проще, но они не живут без поддержки плюсовых исключений.


Так а что тогда по поводу уродливой реализации
Автор: Евгений Музыченко
Дата: 18.04.25
?

Тебе же задали вопрос конкретно про std::string, или std::vector. Пришли к тому, что

Мне не нравится, когда при моих непреднамеренных ошибках все это говно вспучивает из-под капота, и мне приходится разглядывать многострочные, но маловразумительные тексты, чтобы догадаться, что же именно пошло не так.


Так что в итоге, с твоей точки зрения, пригодны std::string, или std::vector для или нет?
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 18.04.2025 20:53 rg45 . Предыдущая версия .
Re[13]: Концепция умного C++
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.25 20:40
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

M>>Они под капотом, и пользователь с ними не сталкивается


ЕМ>Пока не допустит где-то ошибки.


Обычно это бывает только тогда, когда пользователь сам начинает неумело шаблонить. В других случаях ошибок нет, или они весьма понятны.


M>>Это проблема не языка, а отдельных компиляторов.


ЕМ>Корень проблемы находится в языке. Компиляторы лишь в разной степени пытаются ее смягчать.


Нет, компиляторы нихрена не пытаются смягчать. Они просто вываливают портянку сообщения со своей диагностикой, как есть.

Я свою тулзу не просто так написал, и она мне помогает в сложных случаях. Но она просто парсит выхлоп MSVC, а компилятор мог бы делать такую же или, что гораздо вероятнее, гораздо более лучшую работу.


M>>Слышал, кстати, что Clang умеет более менее внятно сообщать об ошибках.


ЕМ>Возможно. Но подбирать компилятор, лучше других умеющий заметать мусор под ковер — так себе идея.


Это как раз не про мусор под ковёр, а про качественную диагностику.
Ещё я, при проблемах с компиляцией, смотрю, выхлоп GCC на том же проекте, часто помогает. Ну и моя тулза тоже помогает, когда портянка слишком большая что в MSVC, что в GCC


M>>Проблема не в диагностике, а во внятных сообщениях об ошибках.


ЕМ>Главная проблема в том, что в языке до сих пор нет внятных средств для построения сложных и одновременно понятных и надежных метаконструкций. Все остальное — лишь следствия.


Да есть, просто ты не осилил.


M>>Почему-то мейнстрим компиляторы не парятся внятно о них сообщать, это да.


ЕМ>Прежде всего потому, что компилятор не обладает сведениями об идеях автора, использующего трюки, поэтому сообщает лишь о том, что непосредственно видит. Чтобы компилятор мог сообщать более внятно, ему необходимо исследовать текст сверх того, что необходимо для его компиляции. Неудивительно, что мало кому это интересно.


Нет конечно. Посмотри мой парсер/упрощатель сообщений MSVC, он замечательно сворачивает простыни от MSVC во вполне внятные сообщения


ЕМ>Попробуйте добиться от дизассемблера внятного отображения программы, активно использующей самомодификацию, переходы внутрь кода команды и подобные трюки, если он специально этому не обучен. Попробуйте добиться от спеллчекера внятной диагностики нарушения логических связей высших порядков, не добавляя в него ИИ. И так далее.


А это ты вообще о чем?


M>>прорекламировать свою тулзу, которая из портянки сообщения MSVC делает более менее внятное сообщение:


ЕМ>Спасибо, но сообщения MSVC об "обычных" ошибках меня вполне устраивают, а связываться с шаблонными библиотеками я остерегаюсь.


Да не за что, не тебе, так может кому-то другому поможет
Маньяк Робокряк колесит по городу
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.