Re[49]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 16:02
Оценка:
Здравствуйте, netch80, Вы писали:

N>К моменту моего вступления в эту ветку EM уточнил смысл и контекст данного утверждения.


А ты себя считаешь точкой осчета любого обсуждения, в которое ты в ступаешь что ли? В таком случае, у меня для тебя плохи новости. Налицо все признаки землепуповости.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[50]: Сырые указатели в С++1х
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 16.04.23 16:09
Оценка: +1
Здравствуйте, rg45, Вы писали:

N>>К моменту моего вступления в эту ветку EM уточнил смысл и контекст данного утверждения.


R>А ты себя считаешь точкой осчета любого обсуждения, в которое ты в ступаешь что ли?


Это значит, что и до этого уже было достаточно данных.

R> В таком случае, у меня для тебя плохи новости. Налицо все признаки землепуповости.


У тебя — чрезмерного употребления средств (мне уже неважно, какого характера), расширяющих сознание.
The God is real, unless declared integer.
Отредактировано 16.04.2023 16:14 netch80 . Предыдущая версия .
Re[48]: Сырые указатели в С++1х
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 16.04.23 16:13
Оценка:
Здравствуйте, rg45, Вы писали:

N>>Вы нафлудили столько, и столько бродили вокруг, что найти там что-то нереально.

N>>Лучше просить уточнения по новой. Спасибо за ответ.

R>Нафлудил не больше, чем твой дружок.


Ну значит я про средства расширения сознания не ошибся — ты уже приписал Евгения к моим "дружкам".

N>>Проверяются конкретные подозрительные ситуации, вызванные нарушениями в коде, который далеко, давно и в другом месте. Конкретный метод проверки платформенно-зависим. Здесь и тут — именно так. Абстракции интересны только в том смысле, чтобы обойти их ограничения.


R>В таком случае вы со своим приятелем неудачно выбрали форум и тему. Здесь НЕ обсуждаются "КОНКРЕТНЫЫЕ ПОДОЗРИТЕЛЬНЫЕ СИТУАЦИИ".


В этой подветке он начал, вы продолжили вместе.
Формальное соответствие, здесь это cpp или cpp.applied, или вообще что-то абстрактное, меня действительно не интересовало, всё равно постоянно смешивают.
The God is real, unless declared integer.
Re[51]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 16:14
Оценка: :)
Здравствуйте, netch80, Вы писали:

N>Это значит, что и до этого уже было достаточно данных.


Тогда откуда эти тупые вопросы
Автор: netch80
Дата: 16.04.23
?

N>У тебя — чрезмерного употребления веществ, расширяющих сознание.


А вот тупое бросание какашками прибереги для обезьянника. Здесь люди, панимаиш.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[49]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 16:16
Оценка: -1
Здравствуйте, netch80, Вы писали:

N>Ну значит я про средства расширения сознания не ошибся — ты уже приписал Евгения к моим "дружкам".


Я говорю о том, как это выглядит. И судя по тому, как тебя это цепляет, не очень-то и ошибся.

N>В этой подветке он начал, вы продолжили вместе.

N>Формальное соответствие, здесь это cpp или cpp.applied, или вообще что-то абстрактное, меня действительно не интересовало, всё равно постоянно смешивают.

Это опять вранье. Я устал уже давать ссылки, ХЗ, что там у тебя вместо сознания.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 16.04.2023 16:16 rg45 . Предыдущая версия .
Re[47]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 16:24
Оценка:
Здравствуйте, netch80, Вы писали:

N>Вы нафлудили столько, и столько бродили вокруг, что найти там что-то нереально.

N>Лучше просить уточнения по новой. Спасибо за ответ.

А вообще, это прелестно, я считаю: "не читал, но осуждаю, но виноват в этом не я"
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[47]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 16:27
Оценка:
Здравствуйте, netch80, Вы писали:

N>Вы нафлудили столько, и столько бродили вокруг, что найти там что-то нереально.


И по поводу "нафлудил" — уж чья бы мычала. Просто посчитай соотношение слов при нашем с тобой общении. В своем глазу бревна не видно, да?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[44]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 16:29
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

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


Ну а ты чего притих? Только "плюсики" шлепаешь. Почуял надежное плечо, что ли?
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 16.04.2023 16:29 rg45 . Предыдущая версия .
Re[45]: Сырые указатели в С++1х
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 16.04.23 16:34
Оценка:
Здравствуйте, rg45, Вы писали:

R>Ну а ты чего притих?


Не до сук мне. Дела доделаю — отпишусь.
Re[46]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 16:36
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Не до сук мне. Дела доделаю — отпишусь.


Ты кого сукой назвал? Не подумал, что в ответ могут полететь словечки и покрепче?
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 16.04.2023 16:38 rg45 . Предыдущая версия .
Re[47]: Сырые указатели в С++1х
От: T4r4sB Россия  
Дата: 16.04.23 17:03
Оценка: :)
Здравствуйте, rg45, Вы писали:

R>Ты кого сукой назвал?


Да тут серьёзно всё, надо писать маляву Ржавому, пусть по понятиям раскидает.
Re[47]: Сырые указатели в С++1х
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 16.04.23 17:28
Оценка:
Здравствуйте, rg45, Вы писали:

R>Ты кого сукой назвал?


Разработчиков компиляторов, выбрасывающих код почем зря, и тормознутых студий. А Вы о ком подумали?

Вообще, это называется "игра слов".
Re[48]: Сырые указатели в С++1х
От: rg45 СССР  
Дата: 16.04.23 17:30
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вообще, это называется "игра слов".


Ну с такими играми поосторожнее нужно быть, потому что слова словам рознь. Ладно проехали.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re: Сырые указатели в С++1х
От: qaz77  
Дата: 16.04.23 18:45
Оценка: +1
Здравствуйте, cppguard, Вы писали:

C>Если нужно передать владение указателем, то передают unique_ptr, если указатель без владения — сам указатель. Но почему во втором случае не передавать ссылку? Вопрос навеян кодовой базой LLVM и другими открытыми проектами.


Мое ИМХО, что const T* [= nullptr] может использоваться как необязательный входной параметр,
а T* [= nullptr] может использоваться как необязательный входной/выходной или только выходной параметр.
Соответственно, T или const T& — это обязательный входной параметр, а T& — обязательный входной/выходной или только выходной параметр
Идеи с возвратом туплов мне не близки. Теперь можно кидать помидоры.
Re[4]: Сырые указатели в С++1х
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.23 07:28
Оценка:
Здравствуйте, Basil2, Вы писали:

B>Это как раз и есть извращение, причем двойное (что конвертить указатель в ссылку


Если объект создается (статически, автоматически, динамически) на одном из верхних уровней, а на всех нижних пребывает в неизменности — какой смысл тащить его указателем по всем нижним уровням?

B>что разыменовывать без проверки)


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

B>
B>auto [val1, val2, val3] = returnThreeValues();
B>


Если функция возвращает кортеж, то неплохо бы посмотреть, какой код на это генерится. В варианте с make_tuple VC++ генерит чудовищный код, и только оптимизация способна превратить его во вменямый.

B>
B>const Point p = GetPoint();
B>


Когда элементы логически связаны между собой — конечно, удобнее возвращать объект.
Re[36]: Сырые указатели в С++1х
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.23 07:35
Оценка:
Здравствуйте, Marty, Вы писали:

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


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

M>А если данные указатели протухают в произвольный момент времени, то даже постоянная проверка не особо поможет


Не особо, но как-то поможет. Вообще, проверок много не бывает, лишь бы они не съедали слишком много ресурсов. Я бы хотел как можно больше предупреждений от компилятора, и как можно больше автоматических проверок в run time. Но — полностью управляемых, а не только "уровень 1-4" или "включить все — отключить все".

M>
M>if (isValidPtr(ptr))
M>    doSomething(ptr); // тут может быть уже инвалид
M>


У меня такое бывало, когда внешний компонент, передавший мне указатель на блок, вскоре освобождал его из-за ошибки у меня или у себя. Регулярные проверки помогали поймать это до того, как "размоется" предыстория. Без них пришлось бы писать и разгребать сотни мегабайт (а то и гигабайты) логов.
Re[34]: Сырые указатели в С++1х
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.23 07:49
Оценка:
Здравствуйте, ·, Вы писали:

·>В плюсах нет никаких способов делать такие проверки. Единственное что возможно — ptr != nullptr.


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

·>Зато конкретные среды особенно в дебаг-сборках это делают на ура — валят в отладчик или сыплют коредампы.


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

ЕМ>>а конструкцию (&ref != nullptr) приводил исключительно в качестве примера.


·>Примера чего?


Того, как на практике можно обнаружить ошибки, по Стандарту влекущие UB.

ЕМ>> в тот момент, когда произойдет фактическое обращение, часть предыстории может быть потеряна.


·>Не очень понял, что может быть потеряно.


Предыстория взаимодействия между различными компонентами кода — как моего, так и внешнего.

·>Попробуй переписать код.


Как именно? Представляете себе, например, как фильтры DirectShow взаимодействуют с диспетчером графов и другими фильтрами? Что там нужно "переписать", чтобы исключить возможность порчи своей/чужой памяти в любой момент?

·>Да любой код можно запустить 100500 раз, тесты называется.


Угу. А как при очередном запуске обеспечить точное повторение путей выполнения всего кода?
Re[35]: Сырые указатели в С++1х
От: so5team https://stiffstream.com
Дата: 17.04.23 08:05
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

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


Разработчики и пользователи FFMPEG и ImageMagic, и пр., и пр., смотрят на вас с недоумением.
Re[34]: Сырые указатели в С++1х
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.23 08:45
Оценка:
Здравствуйте, so5team, Вы писали:

S>Я здесь собрал
Автор: so5team
Дата: 16.04.23
и ссылки и цитаты с которых все началось. И убежден в том, что если бы Евгения не приложили фейсом о стандарт, никаких подробностей о целях проверок и привязки к конкретному семейству компиляторов никто бы и не узнал.


Ладно, я тоже собрал несколько ссылок: раз
Автор: Евгений Музыченко
Дата: 05.04.23
, два
Автор: Евгений Музыченко
Дата: 05.04.23
, три
Автор: Евгений Музыченко
Дата: 05.04.23
, четыре
Автор: Евгений Музыченко
Дата: 06.04.23
, пять
Автор: Евгений Музыченко
Дата: 06.04.23
, шесть
Автор: Евгений Музыченко
Дата: 06.04.23
, семь
Автор: Евгений Музыченко
Дата: 06.04.23
, восемь
Автор: Евгений Музыченко
Дата: 06.04.23
, дальше уже просто лень стало. Это все писалось в самые первые дни, полторы недели назад. Там и почти каждоразовые пояснения о том, что речь не про чистый и незамутненный "C++ вообще", а сугубо про конкретные реализации, платформы и даже компиляторы. Если Штирлиц и после этого наивно продолжал считать, что дискуссия не выходит за рамки "языка вообще", то ему ли обвинять кого-то в тупости?

S>Затем, чтобы читатели подобного спора отдавали себе отчет о том, что есть стандарт языка, а есть вещи за рамками этого стандарта.


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

S>Такое понимание важно, например, для портирования кода на другие платформы (а то и просто на другой компилятор или новую версию того же компилятора). Неприятные сюрпризы с такими вещами могут случиться и без UB, а уж с UB так вообще ничего нельзя знать точно.


И об этом я несколько раз писал явно. Но, блин, опять забыл про выделение — полагал, что это самоочевидно.
Re[35]: Сырые указатели в С++1х
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.23 08:50
Оценка:
Здравствуйте, netch80, Вы писали:

N>Всё он в курсе. Вот что высказывается слишком узкоконтекстно


Наверное, надо и сюда притащить известную практику:

Для упрощения отладки в конкретных реализациях можно применять ряд технических средств: ... *

* Согласно Стандарту, операция порождает неопределенное поведение (UB), в well-formed программе запрещена


Ну и реестр учредить, как положено.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.