Re[12]: Не могу понять ссылки в C++
От: rg45 СССР  
Дата: 16.06.24 20:18
Оценка:
Здравствуйте, r0nd, Вы писали:


R>Ну вот, вот и закончился весь флёр rg45. Ну что ж такое, я конечно не завсегдатай этого форума, и не в курсе, как здесь принято, и как называют людей, с аргументами которых не согласен или в силу своего профессионализма что-то противопоставить приведенным фактам оппонента.


R>Выпей водички, rg45. А то инфаркт случится. Возвращаясь к ранее написанному, стоит ли мне ожидать что ты ответишь за свои высказывания, про адрес у ссылок? Или так и будешь скакать по "типам", "людям" и оскорблениям собеседников?


Иди подмойся и сопли подотри.
--
Re[10]: Не могу понять ссылки в C++
От: пффф  
Дата: 16.06.24 20:20
Оценка: +4
Здравствуйте, r0nd, Вы писали:

R>При чем здесь операция? В твоем изначальном императиве не было никаких "операций". Вопрос же звучал просто "у ссылки есть адрес памяти или нет адреса памяти". И все. К этому утверждению и возникли у меня вопросы. Я так понимаю, мои аргументы в виде ассемблерного кода на тебя не действуют, Евгений пытался смягчить формулировки, но так и не отмазал тебя. Каждый остается при своем мнении.


Простите, что вмешиваюсь в вашу весёлую дискуссию, но причем тут ассемблер? Вы ещё про C++ тут говорите, или уже про что-от другое?

Если вам известен способ средствами C++ получить адрес ссылки, а не объекта, на который она ссылается, то не могли бы вы его привести?
Re[10]: Не могу понять ссылки в C++
От: пффф  
Дата: 16.06.24 20:23
Оценка: :)
Здравствуйте, r0nd, Вы писали:

R>Я доказал что есть, как быть?


Что ты доказал? Что в каком-то частном случае в сгенерированном коде внезапно адрес объекта, на который ссылается ссылка, тоже где-то хранится? И что по твоему это доказывает?
Re[8]: Не могу понять ссылки в C++
От: Stanislav V. Zudin Россия  
Дата: 16.06.24 20:25
Оценка:
Здравствуйте, r0nd, Вы писали:

SVZ>>Видимо оптимизация выключена, потому что код совсем кондовый.


R>При чем здесь оптимизация? Правильно — не при чем.


Оптимизация очень даже причем. В релизном кода на стеке может вообще ничего не будет — соптимизируются.

SVZ>>Апд. Что касается адреса ссылки. Тебе привели пример, который доказывает, что у ссылки адреса не получить. Под капотом может быть что угодно. Иногда ссылка имеет физическое воплощение, но для программиста оно недоступно.


R>Где пример? Ссылку можно?


- це, сынку, море
— хде, батьку?


Ты сам его написал, я добавил результат работы этого кода. Всё видно, что тут можно мусолить?
_____________________
С уважением,
Stanislav V. Zudin
Re[10]: Не могу понять ссылки в C++
От: wander  
Дата: 16.06.24 20:27
Оценка: 48 (5) +2
Здравствуйте, r0nd, Вы писали:

R>Память тебя поводит, вот здесь ты утверждал Не могу понять ссылки в C++ что у ссылок нет адреса памяти:


R>

R>- У указателя есть адрес, а у ссылки нет;


R>Короче ссылка на стандарт либо ассемблерный код, демонстрирующий это утверждение


Вот в стандарте написано:

It is unspecified whether or not a reference requires storage

https://eel.is/c++draft/dcl.ref#4
И вот это

There shall be no references to references, no arrays of references, and no pointers to references.

https://eel.is/c++draft/dcl.ref#5

Спецификация недвусмысленно дает понять, что ссылка не может быть адресована (не бывает указателя на ссылку), и что будет ли ссылка иметь storage — не определяется.
На практике это сводится к тому, что компилятор сам решает, нужно ли выделять место в памяти под ссылку или не нужно.
Как правило эта нужда связана с сугубо техническими причинами.

Так вот, КОГДА компилятор соизволит сделать storage под ссылку, то у этого storage на уровне машинного кода может быть адрес(*) (именно может быть, потому как storage может быть в регистре); А когда, соответственно, не соизволит, то адреса не будет.
Из этой особенности прямо следует даже без отдельных определений, что ссылка не объект, потому как у объекта всегда есть storage и мы можем всегда взять адрес этого storage из кода. Даже когда объект в регистре, то взятие адреса насильно заставляет компилятор переносить storage в память, чтобы взятие адреса стало возможным. А у ссылки — не можем. Нет такого механизма в языке.
Мы можем хакнуть код, и в тех случаях, когда компилятор сделал storage для ссылки, и когда этот storage не в регистре, получить его адрес, но НИКАКОГО отношения к C++ этот хак иметь не будет.

В общем резюмируем,
1) когда rg45 писал "у ссылки нет адреса" — имелось в виду "в языке C++ у ссылки нет адреса".
2) когда Евгений писал "А кто пытался убедить Вас в том, что у типа данных "ссылка" якобы нет адреса в памяти" — имелся в виду вот этот вот аспект под звездочкой (*). Т.е. Евгений понимает, что чудес не бывает и ссылка иногда где-то должна храниться, и вот когда она хранится в памяти, у нее реально будет адрес, которой, впрочем, из С++ все равно недоступен легально.

Таким образом тут даже нет противоречия. Тут просто освещались разные аспекты. Товарищи пытались быть объективными в тех условиях, которые вы им поставили в качестве вводных. Если вы пытаетесь на этом строить свои аргументы против них, то к сожалению это просто со стороны выглядит глупо. Типа вот подловили кого-то. Я в таких случаях советую прочесть рассказ Шукшина "Срезал". Это вот почти та же ситуация.
Re[10]: Не могу понять ссылки в C++
От: rg45 СССР  
Дата: 16.06.24 20:29
Оценка:
Здравствуйте, r0nd, Вы писали:

R>Я доказал что есть, как быть?


Свою глупость и упоротость ты доказал.

R>Где в стандарте сказано что у ссылки нет адреса?


Да даже типа данных такого нет, которым можно было бы представить адрес ссылки.
--
Re[13]: Не могу понять ссылки в C++
От: r0nd  
Дата: 16.06.24 20:34
Оценка: :)
On Jun 16, 2024, 11:12 PM, rg45 <49596@users.rsdn.org> wrote:

R>>Вот! Лезет все-таки институты полезли. Тебя за гаражами учили С++? Там хоть успели объяснить, что у ссылок адреса есть? Или забыли? Сдал форум, сдал-с…


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


Как только узнают кто это передал им на словах, засмеют, ты что, не светись ты дальше форума. Сиди здесь. Тут уютно — есть армия местных почитателей, аплодировать тебе будут вне зависимости от уровня твоей «аргументации» и «компетенции».

R>>А, стоп, ты хочешь сказать, что указатели имеют адреса, НО НЕ В ПАМЯТИ? Так?


R>А тебе мало того, что ты обосрался с ссылками-объектами
Автор: r0nd
Дата: 16.06 19:19
, ты еще хочешь?


«Обосрался»? Хм… Тема какашек тебе ближе чем тема С++? Так? Почему ты постоянно пытаешься увести разговор от сути к… какахам? Или ты готовишь удобную почву, чтоб признаться в том, что ты сам ливнул теплого? А? Я просто не сразу понял твой замысел.

Так все-таки, давай ты признаешься, что ты соврал в изначальном высказывании и у «ссылок на самом деле есть адреса в памяти», но чуть сложно получить к этой памяти доступ. Но если ты дальше будешь отстаивать свой глупейший тезис о том, что адреса у ссылки нет, при этом не давая ни единого доказательства на а) код — доказывающий это б) стандарт. То ты не эксперт, и форум ты своей культурой не красишь.

❧ “Goal setting is the secret to a compelling future.” — Tony Robbins
Re[13]: Не могу понять ссылки в C++
От: r0nd  
Дата: 16.06.24 20:35
Оценка:
On Jun 16, 2024, 11:18 PM, rg45 <49596@users.rsdn.org> wrote:

R>Иди подмойся и сопли подотри.


Какой ужас, и это аргументация.


“Happiness is not something readymade. It comes from your own actions.” — Dalai Lama
Re[14]: Не могу понять ссылки в C++
От: rg45 СССР  
Дата: 16.06.24 20:39
Оценка:
Здравствуйте, r0nd, Вы писали:

R>>>Вот! Лезет все-таки институты полезли. Тебя за гаражами учили С++? Там хоть успели объяснить, что у ссылок адреса есть? Или забыли? Сдал форум, сдал-с…

R>Как только узнают кто это передал им на словах, засмеют, ты что, не светись ты дальше форума. Сиди здесь. Тут уютно — есть армия местных почитателей, аплодировать тебе будут вне зависимости от уровня твоей «аргументации» и «компетенции».
R>>>А, стоп, ты хочешь сказать, что указатели имеют адреса, НО НЕ В ПАМЯТИ? Так?
R>«Обосрался»? Хм… Тема какашек тебе ближе чем тема С++? Так? Почему ты постоянно пытаешься увести разговор от сути к… какахам? Или ты готовишь удобную почву, чтоб признаться в том, что ты сам ливнул теплого? А? Я просто не сразу понял твой замысел.
R>Так все-таки, давай ты признаешься, что ты соврал в изначальном высказывании и у «ссылок на самом деле есть адреса в памяти», но чуть сложно получить к этой памяти доступ. Но если ты дальше будешь отстаивать свой глупейший тезис о том, что адреса у ссылки нет, при этом не давая ни единого доказательства на а) код — доказывающий это б) стандарт. То ты не эксперт, и форум ты своей культурой не красишь.

Ты в серьез надеешься, что я буду читать эти сопли? Я ж сказал тебе — сходи подмойся и высморкайся. Смотреть противно.
--
Re[11]: Не могу понять ссылки в C++
От: r0nd  
Дата: 16.06.24 20:40
Оценка:
On Jun 16, 2024, 11:23 PM, пффф <148778@users.rsdn.org> wrote:

П>Что ты доказал? Что в каком-то частном случае в сгенерированном коде внезапно адрес объекта, на который ссылается ссылка, тоже где-то хранится? И что по твоему это доказывает?


Смелое утверждение. А что дает право тебе считать это «частным случаем»? Тут же в отсутствии аргументации на стандарт, идет слово против слова. Приведи любой «другой случай» доказывающий обратное, где не будет смещения (то есть подтвердиться смелое утверждение rg45) об отсутствии адреса у ссылок.


“Women challenge the status quo because we are never it.” — Cindy Gallop
Re[14]: Не могу понять ссылки в C++
От: rg45 СССР  
Дата: 16.06.24 20:41
Оценка:
Здравствуйте, r0nd, Вы писали:

R>Какой ужас, и это аргументация.


А что с тобой делать, если человеческий язык до тебя не доходит? Какой "оппонент", такая и аргументация.
--
Re[12]: Не могу понять ссылки в C++
От: пффф  
Дата: 16.06.24 20:47
Оценка: +1 :)
Здравствуйте, r0nd, Вы писали:

П>>Что ты доказал? Что в каком-то частном случае в сгенерированном коде внезапно адрес объекта, на который ссылается ссылка, тоже где-то хранится? И что по твоему это доказывает?


R>Смелое утверждение. А что дает право тебе считать это «частным случаем»?


А что даёт тебе право считать это общим случаем?


R>Тут же в отсутствии аргументации на стандарт, идет слово против слова. Приведи любой «другой случай» доказывающий обратное, где не будет смещения (то есть подтвердиться смелое утверждение rg45) об отсутствии адреса у ссылок.


Ссылка может лежать в регистре, и тогда у неё не будет адреса. Это если про конечный машинный код. Но мы ещё про C++ или уже нет? Давай ты приведёшь пример, как получить адрес ссылки, а ещё интереснее — изменить её значение, чтобы ссылка стала указывать на другой объект
Re[12]: Не могу понять ссылки в C++
От: rg45 СССР  
Дата: 16.06.24 20:53
Оценка:
Здравствуйте, r0nd, Вы писали:

R>Смелое утверждение. А что дает право тебе считать это «частным случаем»? Тут же в отсутствии аргументации на стандарт, идет слово против слова. Приведи любой «другой случай» доказывающий обратное, где не будет смещения (то есть подтвердиться смелое утверждение rg45) об отсутствии адреса у ссылок.


Слышь упоротый, это ты нам в нос суешь свой ассемблер в качестве доказательства. Поэтому это ты должен доказывать, что твой пример обладает достаточной общностью.
--
Отредактировано 16.06.2024 20:58 rg45 . Предыдущая версия .
Re[11]: Не могу понять ссылки в C++
От: rg45 СССР  
Дата: 16.06.24 21:15
Оценка: +2
Здравствуйте, wander, Вы писали:

W>Вот в стандарте написано:

W>

W>It is unspecified whether or not a reference requires storage

W>https://eel.is/c++draft/dcl.ref#4
W>И вот это
W>

W>There shall be no references to references, no arrays of references, and no pointers to references.

W>https://eel.is/c++draft/dcl.ref#5

W>Спецификация недвусмысленно дает понять, что ссылка не может быть адресована (не бывает указателя на ссылку), и что будет ли ссылка иметь storage — не определяется.

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

W>Так вот, КОГДА компилятор соизволит сделать storage под ссылку, то у этого storage на уровне машинного кода может быть адрес(*) (именно может быть, потому как storage может быть в регистре); А когда, соответственно, не соизволит, то адреса не будет.

W>Из этой особенности прямо следует даже без отдельных определений, что ссылка не объект, потому как у объекта всегда есть storage и мы можем всегда взять адрес этого storage из кода. Даже когда объект в регистре, то взятие адреса насильно заставляет компилятор переносить storage в память, чтобы взятие адреса стало возможным. А у ссылки — не можем. Нет такого механизма в языке.
W>Мы можем хакнуть код, и в тех случаях, когда компилятор сделал storage для ссылки, и когда этот storage не в регистре, получить его адрес, но НИКАКОГО отношения к C++ этот хак иметь не будет.

W>В общем резюмируем,

W>1) когда rg45 писал "у ссылки нет адреса" — имелось в виду "в языке C++ у ссылки нет адреса".
W>2) когда Евгений писал "А кто пытался убедить Вас в том, что у типа данных "ссылка" якобы нет адреса в памяти" — имелся в виду вот этот вот аспект под звездочкой (*). Т.е. Евгений понимает, что чудес не бывает и ссылка иногда где-то должна храниться, и вот когда она хранится в памяти, у нее реально будет адрес, которой, впрочем, из С++ все равно недоступен легально.

W>Таким образом тут даже нет противоречия. Тут просто освещались разные аспекты. Товарищи пытались быть объективными в тех условиях, которые вы им поставили в качестве вводных. Если вы пытаетесь на этом строить свои аргументы против них, то к сожалению это просто со стороны выглядит глупо. Типа вот подловили кого-то. Я в таких случаях советую прочесть рассказ Шукшина "Срезал". Это вот почти та же ситуация.


Класс. Толково все разложил по полочкам
--
Re[11]: Не могу понять ссылки в C++
От: r0nd  
Дата: 16.06.24 21:16
Оценка: :)
On Jun 16, 2024, 11:27 PM, wander <89287@users.rsdn.org> wrote:

W>Здравствуйте, r0nd, Вы писали:


R>>Память тебя поводит, вот здесь ты утверждал Не могу понять ссылки в C++ что у ссылок нет адреса памяти:


R>>

R>>- У указателя есть адрес, а у ссылки нет;


R>>Короче ссылка на стандарт либо ассемблерный код, демонстрирующий это утверждение


W>Вот в стандарте написано:


Наконец-то, спасибо!

W>1) когда rg45 писал "у ссылки нет адреса" — имелось в виду "в языке C++ у ссылки нет адреса".


То есть стандарт определяет "It is unspecified whether or not a reference requires storage". А rg45 говорит, что нет адреса? Так его нет, или он есть или согласно стандарту "unspecified". Я запутался, помогите, кому верить rg45 или стандарту?

W>2) когда Евгений писал "А кто пытался убедить Вас в том, что у типа данных "ссылка" якобы нет адреса в памяти" — имелся в виду вот этот вот аспект под звездочкой (*). Т.е. Евгений понимает, что чудес не бывает и ссылка иногда где-то должна храниться, и вот когда она хранится в памяти, у нее реально будет адрес, которой, впрочем, из С++ все равно недоступен легально.


Вы ж хорошо начали с ссылки на стандарт. Гм. А вот эта декларация легальна в С++? Или есть какие-то уровни легальности в C++?

W>Тут просто освещались разные аспекты. Товарищи пытались быть объективными в тех условиях, которые вы им поставили в качестве вводных.


Давайте пока не потерли модераторы всю "объективность" отдельно взятых товарищей, все-таки напомнить всю полноту объективности "товарищей":


Это не говорит про объективность отдельных товарищей, сколько про объективность людей утверждающих про объективность? Нет?

W>Типа вот подловили кого-то. Я в таких случаях советую прочесть рассказ Шукшина "Срезал". Это вот почти та же ситуация.


А rg45 совет дать стандарт перечитать, слабо? А то он в следующий раз опять сорвется в припадок, и будет спорить что у ссылок нет адреса?


“Strength is keeping it together when everyone expects you to fall apart.” — Chris Bradford
Re[14]: Не могу понять ссылки в C++
От: пффф  
Дата: 16.06.24 21:20
Оценка: +3
Здравствуйте, r0nd, Вы писали:

Клоунаду поскипал

R>Так все-таки, давай ты признаешься, что ты соврал в изначальном высказывании и у «ссылок на самом деле есть адреса в памяти», но чуть сложно получить к этой памяти доступ. Но если ты дальше будешь отстаивать свой глупейший тезис о том, что адреса у ссылки нет, при этом не давая ни единого доказательства на а) код — доказывающий это б) стандарт. То ты не эксперт, и форум ты своей культурой не красишь.


В рамках языка — у ссылки нет адреса. За рамками языка у ссылки может быть всё, что угодно. Мы C++ обсуждаем, или что? Если "или что", то может тебе в другом форуме это обсуждать?
Re[9]: Не могу понять ссылки в C++
От: r0nd  
Дата: 16.06.24 21:20
Оценка: :)
On Jun 16, 2024, 11:25 PM, Stanislav V. Zudin <4579@users.rsdn.org> wrote:

SVZ>Оптимизация очень даже причем. В релизном кода на стеке может вообще ничего не будет — соптимизируются.


B при каком флаге мой код выше соптимизируется до «на стеке может вообще ничего не будет», давайте по конкретнее конфигурацию компилятора номер, версию ОС, название флагов?


“Life is like riding a bicycle. To keep your balance you must keep moving.” — Albert Einstein
Re[12]: Не могу понять ссылки в C++
От: rg45 СССР  
Дата: 16.06.24 21:22
Оценка: -1
Здравствуйте, r0nd, Вы писали:

R>А rg45 говорит, что нет адреса? Так его нет, или он есть или согласно стандарту "unspecified". Я запутался, помогите, кому верить rg45 или стандарту?


Животное ты тупое. Это высказывание означает, что твое "доказательсто" накрывается мехом вместе с твоим ассемблерным кодом ибо ты закладывался на то, что у ссылки обязательно есть storage. Мое же высказывание о том, что у ссылок нет адреса тебе уже несколько раз обосновали тем, что в С++ не предусмотрено даже типа данных для этого.

R>Давайте пока не потерли модераторы всю "объективность" отдельно взятых товарищей, все-таки напомнить всю полноту объективности "товарищей":


R>

R>Это не говорит про объективность отдельных товарищей, сколько про объективность людей утверждающих про объективность? Нет?

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

О, жаловаться пришёл, чмошник. Позвонил уже в колокольчик?
--
Отредактировано 16.06.2024 21:35 rg45 . Предыдущая версия . Еще …
Отредактировано 16.06.2024 21:23 rg45 . Предыдущая версия .
Re[12]: Не могу понять ссылки в C++
От: wander  
Дата: 16.06.24 21:31
Оценка: +1 :)
Здравствуйте, r0nd, Вы писали:

R>Вы ж хорошо начали с ссылки на стандарт. Гм. А вот эта декларация легальна в С++? Или есть какие-то уровни легальности в C++?

Декларация легальна. Все, что внутри нее — это не C++. В том числе и ваши прогулки по памяти. Так что тут не о чем говорить.
Если вы с помощью этой декларации влезли в память ссылки, взяли адрес этой памяти и присвоили в указатель, то да — это нелегальное получение адреса.

R>Давайте пока не потерли модераторы всю "объективность" отдельно взятых товарищей, все-таки напомнить всю полноту объективности "товарищей":

Слушайте, я говорил только про процитированное. Не надо все сказанное (особенно в соседних ветках) преваливать на меня.
Я не одобряю прямых оскорблений, но и троллинга и вот этого вот "срезания" я тоже не одобряю. Кто тут больше провинился — пусть решают модераторы.

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

У ссылок нет адреса в языке C++. А в реализации может быть что угодно.
Re[12]: Не могу понять ссылки в C++
От: пффф  
Дата: 16.06.24 21:32
Оценка: +1
Здравствуйте, r0nd, Вы писали:


W>>Типа вот подловили кого-то. Я в таких случаях советую прочесть рассказ Шукшина "Срезал". Это вот почти та же ситуация.


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


То, что ты смог довести rg45 до хамства — твоей особой заслуги нет, rg45, хоть и хороший специалист, но довольно вспыльчивый.

А вот то, что ты в обсуждении языковых средств C++ используешь в качестве аргументов то, что выходит за рамки языка — выдаёт в тебе человека, любящего грязные способы дискуссии
Отредактировано 16.06.2024 21:35 пффф . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.