Здравствуйте, kov_serg, Вы писали:
_>Это конечно здорово, но это просто обёртка. Она не решает вопроса как такое передавать во внешнюю среду, или принимать из неё подобное. _>Более того предыдущие указатели можно было сгенерировать руками если нет поддержки c++17. А тут только C++20.
Объект accessor<...> прекрасно заточен под передачу в качестве параметра. Если же ты имеешь в виду внешнюю среду, которая сама по себе сделана через жопу, тогда конечно, вокруг этого нужно будет сделать черезжопные обертки. Какие именно обёртки — будет продиктовано спецификой чережопной внешней среды.
_>ps: А что будет если надо обернуть функцию без параметров void A::g(); ?
Ты тут несколькими постами выше рассказывал, что концепты и констрейнты это легко и просто, а теперь задаешь такие глупые вопросы. Конечно же там следует добавить констрейнты. А также сделать форвардинг параметров. Я намеренно не сделал всего этого, чтобы максимально разгрузить код.
Более полный вариант мог бы выглядеть примерно так:
Вы же сами должны понимать что такая обёртка не решает никаких проблем. Так что такой фантик бесполезен. В этом и есть сила c++ он способен элегантным способом сложные задачи, которые бы не возникли если бы не c++.
Повторю предыдущий вариант может работать вообще без шаблонов на любом c++, просто более длинно.
, то все "проблемы" решаются на 100%. Только без указателей, которые и в хер никому не упёрлись. А никаких других проблем ты не озвучивал Поведай, что за проблемы решает твой супер-бульбулятор. Если это какой-нибудь интероперабилити с "прятными языками", то ты явно не умеешь отделять мух от котлет.
--
Справедливость выше закона. А человечность выше справедливости.
, то все "проблемы" решаются на 100%. R>Только без указателей, которые и в хер никому не упёрлись. А никаких других проблем ты не озвучивал
Ваша необоснованная предвзятость на счет указателй довольно странная. Это просто адрес, без c++ заморочек.
R>Поведай, что за проблемы решает твой супер-бульбулятор.
Любую проблему можно решить введением дополнительного уровня абстракции кроме одной — слишком большого количества уровней абстракции.
Этот приём позволяет избавиться от лишних абстракций
R>Если это какой-нибудь интероперабилити с "прятными языками", то ты явно ошибся форумом.
И да так же её можно экспортировоть во вне и импортировать снаружи через C апи Например делать foreach и внешние модели отслеживающие изменения.
Здравствуйте, kov_serg, Вы писали:
_>Ваша необоснованная предвзятость на счет указателй довольно странная. Это просто адрес, без c++ заморочек.
Это не просто адрес — это пачка необоснованного геморроя и бессмысленной пессимизации. Но тебе это объяснять бесполезно, это я уже понял.
_>Этот приём позволяет избавиться от лишних абстракций
Понятно, указатели — это самоцель. Попутного Вам ветра.
Более не вижу смысла тратить на тебя время.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
R>Это не просто адрес — это пачка необоснованного геморроя и бессмысленной пессимизации. Но тебе это объяснять бесполезно, это я уже понял.
Вообще вы странный. Ситуация в точности наоборот.
R>Понятно, указатели — это самоцель. Попутного Вам ветра.
Нет цель сделать максимально просто, без лишних усложнений.
R>Более не вижу смысла тратить на тебя время.
Ясно аргументы кончились.
Здравствуйте, rg45, Вы писали:
_>>Нет цель сделать максимально просто, без лишних усложнений. R>Ты добавь сперва проверки всех указателей на ноль в своем говнокоде, потом расскажешь про упрощения.
Добавлять проверки никто не запрещает если это необходимо.
R>>>Более не вижу смысла тратить на тебя время. _>>Ясно аргументы кончились. R> Короче, с тобой всё ясно. https://cs15.pikabu.ru/video/2025/01/10/1736474512218598227_5f1de627_1280x706.webm
Здравствуйте, rg45, Вы писали:
R>Что значет "если"? Если ты делаешь формальный параметр указателем, у тебя нет другого выхода.
Есть. Я могу делать проверки только в DEBUG например. И вообще это объявляется на уровне контрактов, концептов и другой информации уровня компилятора или еще раньше
Здравствуйте, kov_serg, Вы писали:
_>Есть. Я могу делать проверки только в DEBUG например. И вообще это объявляется на уровне контрактов, концептов и другой информации уровня компилятора или еще раньше
Говнокодить, короче. На какие только жертвы не пойдешь ради указателей.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, kov_serg, Вы писали:
BFE>>Но это не главное. Главное, что указатель на функции — это работа на низком уровне, что провоцирует программиста писать запутанный, сложный для чтения код. _>Вы вообще когда-нибудь пользовались указателями на функцию?
да _>А анонимными функциями?
да _>А замыканиями?
да _>Вы считаете это сложным?
Любой код можно запутать так, что он станет сложным для чтения. Как правило, если используют указатели на функции, то код становится запутанным и поэтому сложным для чтения.
BFE>>Что сделать ревью кода с указателями на функции нужно раза в два больше времени, чем без них. _>Вообще не факт. Кода может быть в десятки раз меньше с указателями на функции. Благодяря узбавлению от десятка лишнах абстракций и пачки переходников.
Может, для маленьких проектов.
_>Яркий пример java.
Не использую ни в программировании, ни в виде приложений.
_>Да вы за??али ссылка и указатель это одно и тоже. И принципиально ничем не отличается, кроме особенностей которые введены искуственно.
Вот поэтому я и говорю: указатель на функцию — это и есть абстрактная абстракция.
BFE>>Указатель на функцию сам по себе дополнительное понятие, концепция и сущность. _>Это не должно быть дополнительной концепцией и сущностью, это должно быть first class citizen и лучше если оно выражено через уже имеющиеся концепции не вводя новых.
Вот если так сделать, то будет по настоящему сложно, как в JavaScript, где функция может создавать функцию, создающую функцию, причем все они будут генерироваться и изменятся в зависимости от вызова и параметров. Читали когда нибудь такое? Исправляли?
_>Это минус только для теоретика. Инженерам не нужен изолированный язык. Нуже тот что позваляет решать практические задачи.
Я практик и чем лучше изоляция, тем мне проще.
_>>>И не вводит никаких ограничений, BFE>>Это минус. _>Наручники это тоже плюс, но не для того на ком они.
То есть вам не нравится проверка соответствия типов при компиляции? JavaScript ваш любимый язык?
BFE>>Указатель на функцию — это просто и понятно? BFE>>Тогда может вы расскажите, как правильно перегрузить operator << для своего потока и std::endl ? _>Элементар но же. Не используйте std::endl есть милион и маленькая тележка сделать иначе, а не это убожество с потоками.
_>>>И да WinAPI это C-шный апи. BFE>>C-шный апи — это чисто зло. Вот прямо сегодня половину дня (из-за C-шного апи) я искал ошибку в чужом коде. _>Зло. Хорошо. Сделайте лучше. Или хотя кривую альтернативу.
Так уже.
_>>>Т.к. c++ не способен предоставть вообще никакого вменяемого бинарного апи которое смогут использовать другие даже c++шки BFE>>И это правильно. _>Аргументация прям огонь.
Что вы знаете про dll hell?
Здравствуйте, B0FEE664, Вы писали:
BFE>Я практик и чем лучше изоляция, тем мне проще.
В C++ с этих хреново.
_>Сделайте лучше. Или хотя кривую альтернативу. BFE>Так уже.
Где?
_>>Аргументация прям огонь. BFE>Что вы знаете про dll hell?
Это вообще позор какой-то в 2025 году есть куча базданных.
Вот что мешает систематизировать информацию о библиотеках?