R>Ну вот, вот и закончился весь флёр rg45. Ну что ж такое, я конечно не завсегдатай этого форума, и не в курсе, как здесь принято, и как называют людей, с аргументами которых не согласен или в силу своего профессионализма что-то противопоставить приведенным фактам оппонента.
R>Выпей водички, rg45. А то инфаркт случится. Возвращаясь к ранее написанному, стоит ли мне ожидать что ты ответишь за свои высказывания, про адрес у ссылок? Или так и будешь скакать по "типам", "людям" и оскорблениям собеседников?
Здравствуйте, r0nd, Вы писали:
R>При чем здесь операция? В твоем изначальном императиве не было никаких "операций". Вопрос же звучал просто "у ссылки есть адрес памяти или нет адреса памяти". И все. К этому утверждению и возникли у меня вопросы. Я так понимаю, мои аргументы в виде ассемблерного кода на тебя не действуют, Евгений пытался смягчить формулировки, но так и не отмазал тебя. Каждый остается при своем мнении.
Простите, что вмешиваюсь в вашу весёлую дискуссию, но причем тут ассемблер? Вы ещё про C++ тут говорите, или уже про что-от другое?
Если вам известен способ средствами C++ получить адрес ссылки, а не объекта, на который она ссылается, то не могли бы вы его привести?
Здравствуйте, r0nd, Вы писали:
R>Я доказал что есть, как быть?
Что ты доказал? Что в каком-то частном случае в сгенерированном коде внезапно адрес объекта, на который ссылается ссылка, тоже где-то хранится? И что по твоему это доказывает?
Здравствуйте, r0nd, Вы писали:
SVZ>>Видимо оптимизация выключена, потому что код совсем кондовый.
R>При чем здесь оптимизация? Правильно — не при чем.
Оптимизация очень даже причем. В релизном кода на стеке может вообще ничего не будет — соптимизируются.
SVZ>>Апд. Что касается адреса ссылки. Тебе привели пример, который доказывает, что у ссылки адреса не получить. Под капотом может быть что угодно. Иногда ссылка имеет физическое воплощение, но для программиста оно недоступно.
R>Где пример? Ссылку можно?
- це, сынку, море
— хде, батьку?
Ты сам его написал, я добавил результат работы этого кода. Всё видно, что тут можно мусолить?
_____________________
С уважением,
Stanislav V. Zudin
Спецификация недвусмысленно дает понять, что ссылка не может быть адресована (не бывает указателя на ссылку), и что будет ли ссылка иметь storage — не определяется.
На практике это сводится к тому, что компилятор сам решает, нужно ли выделять место в памяти под ссылку или не нужно.
Как правило эта нужда связана с сугубо техническими причинами.
Так вот, КОГДА компилятор соизволит сделать storage под ссылку, то у этого storage на уровне машинного кода может быть адрес(*) (именно может быть, потому как storage может быть в регистре); А когда, соответственно, не соизволит, то адреса не будет.
Из этой особенности прямо следует даже без отдельных определений, что ссылка не объект, потому как у объекта всегда есть storage и мы можем всегда взять адрес этого storage из кода. Даже когда объект в регистре, то взятие адреса насильно заставляет компилятор переносить storage в память, чтобы взятие адреса стало возможным. А у ссылки — не можем. Нет такого механизма в языке.
Мы можем хакнуть код, и в тех случаях, когда компилятор сделал storage для ссылки, и когда этот storage не в регистре, получить его адрес, но НИКАКОГО отношения к C++ этот хак иметь не будет.
В общем резюмируем,
1) когда rg45 писал "у ссылки нет адреса" — имелось в виду "в языке C++ у ссылки нет адреса".
2) когда Евгений писал "А кто пытался убедить Вас в том, что у типа данных "ссылка" якобы нет адреса в памяти" — имелся в виду вот этот вот аспект под звездочкой (*). Т.е. Евгений понимает, что чудес не бывает и ссылка иногда где-то должна храниться, и вот когда она хранится в памяти, у нее реально будет адрес, которой, впрочем, из С++ все равно недоступен легально.
Таким образом тут даже нет противоречия. Тут просто освещались разные аспекты. Товарищи пытались быть объективными в тех условиях, которые вы им поставили в качестве вводных. Если вы пытаетесь на этом строить свои аргументы против них, то к сожалению это просто со стороны выглядит глупо. Типа вот подловили кого-то. Я в таких случаях советую прочесть рассказ Шукшина "Срезал". Это вот почти та же ситуация.
On Jun 16, 2024, 11:12 PM, rg45 <49596@users.rsdn.org> wrote:
R>>Вот! Лезет все-таки институты полезли. Тебя за гаражами учили С++? Там хоть успели объяснить, что у ссылок адреса есть? Или забыли? Сдал форум, сдал-с…
R>Ну вот и выяснилось, где тебя учили. Иди верни аттестат, скажи, пускай доучивают.
Как только узнают кто это передал им на словах, засмеют, ты что, не светись ты дальше форума. Сиди здесь. Тут уютно — есть армия местных почитателей, аплодировать тебе будут вне зависимости от уровня твоей «аргументации» и «компетенции».
R>>А, стоп, ты хочешь сказать, что указатели имеют адреса, НО НЕ В ПАМЯТИ? Так?
R>А тебе мало того, что ты обосрался с ссылками-объектами
«Обосрался»? Хм… Тема какашек тебе ближе чем тема С++? Так? Почему ты постоянно пытаешься увести разговор от сути к… какахам? Или ты готовишь удобную почву, чтоб признаться в том, что ты сам ливнул теплого? А? Я просто не сразу понял твой замысел.
Так все-таки, давай ты признаешься, что ты соврал в изначальном высказывании и у «ссылок на самом деле есть адреса в памяти», но чуть сложно получить к этой памяти доступ. Но если ты дальше будешь отстаивать свой глупейший тезис о том, что адреса у ссылки нет, при этом не давая ни единого доказательства на а) код — доказывающий это б) стандарт. То ты не эксперт, и форум ты своей культурой не красишь.
⸻ ❧ “Goal setting is the secret to a compelling future.” — Tony Robbins
Здравствуйте, r0nd, Вы писали:
R>>>Вот! Лезет все-таки институты полезли. Тебя за гаражами учили С++? Там хоть успели объяснить, что у ссылок адреса есть? Или забыли? Сдал форум, сдал-с… R>Как только узнают кто это передал им на словах, засмеют, ты что, не светись ты дальше форума. Сиди здесь. Тут уютно — есть армия местных почитателей, аплодировать тебе будут вне зависимости от уровня твоей «аргументации» и «компетенции». R>>>А, стоп, ты хочешь сказать, что указатели имеют адреса, НО НЕ В ПАМЯТИ? Так? R>«Обосрался»? Хм… Тема какашек тебе ближе чем тема С++? Так? Почему ты постоянно пытаешься увести разговор от сути к… какахам? Или ты готовишь удобную почву, чтоб признаться в том, что ты сам ливнул теплого? А? Я просто не сразу понял твой замысел. R>Так все-таки, давай ты признаешься, что ты соврал в изначальном высказывании и у «ссылок на самом деле есть адреса в памяти», но чуть сложно получить к этой памяти доступ. Но если ты дальше будешь отстаивать свой глупейший тезис о том, что адреса у ссылки нет, при этом не давая ни единого доказательства на а) код — доказывающий это б) стандарт. То ты не эксперт, и форум ты своей культурой не красишь.
Ты в серьез надеешься, что я буду читать эти сопли? Я ж сказал тебе — сходи подмойся и высморкайся. Смотреть противно.
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
Здравствуйте, r0nd, Вы писали:
П>>Что ты доказал? Что в каком-то частном случае в сгенерированном коде внезапно адрес объекта, на который ссылается ссылка, тоже где-то хранится? И что по твоему это доказывает?
R>Смелое утверждение. А что дает право тебе считать это «частным случаем»?
А что даёт тебе право считать это общим случаем?
R>Тут же в отсутствии аргументации на стандарт, идет слово против слова. Приведи любой «другой случай» доказывающий обратное, где не будет смещения (то есть подтвердиться смелое утверждение rg45) об отсутствии адреса у ссылок.
Ссылка может лежать в регистре, и тогда у неё не будет адреса. Это если про конечный машинный код. Но мы ещё про C++ или уже нет? Давай ты приведёшь пример, как получить адрес ссылки, а ещё интереснее — изменить её значение, чтобы ссылка стала указывать на другой объект
Здравствуйте, r0nd, Вы писали:
R>Смелое утверждение. А что дает право тебе считать это «частным случаем»? Тут же в отсутствии аргументации на стандарт, идет слово против слова. Приведи любой «другой случай» доказывающий обратное, где не будет смещения (то есть подтвердиться смелое утверждение rg45) об отсутствии адреса у ссылок.
Слышь упоротый, это ты нам в нос суешь свой ассемблер в качестве доказательства. Поэтому это ты должен доказывать, что твой пример обладает достаточной общностью.
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>Таким образом тут даже нет противоречия. Тут просто освещались разные аспекты. Товарищи пытались быть объективными в тех условиях, которые вы им поставили в качестве вводных. Если вы пытаетесь на этом строить свои аргументы против них, то к сожалению это просто со стороны выглядит глупо. Типа вот подловили кого-то. Я в таких случаях советую прочесть рассказ Шукшина "Срезал". Это вот почти та же ситуация.
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
Клоунаду поскипал
R>Так все-таки, давай ты признаешься, что ты соврал в изначальном высказывании и у «ссылок на самом деле есть адреса в памяти», но чуть сложно получить к этой памяти доступ. Но если ты дальше будешь отстаивать свой глупейший тезис о том, что адреса у ссылки нет, при этом не давая ни единого доказательства на а) код — доказывающий это б) стандарт. То ты не эксперт, и форум ты своей культурой не красишь.
В рамках языка — у ссылки нет адреса. За рамками языка у ссылки может быть всё, что угодно. Мы C++ обсуждаем, или что? Если "или что", то может тебе в другом форуме это обсуждать?
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
Здравствуйте, r0nd, Вы писали:
R>А rg45 говорит, что нет адреса? Так его нет, или он есть или согласно стандарту "unspecified". Я запутался, помогите, кому верить rg45 или стандарту?
Животное ты тупое. Это высказывание означает, что твое "доказательсто" накрывается мехом вместе с твоим ассемблерным кодом ибо ты закладывался на то, что у ссылки обязательно есть storage. Мое же высказывание о том, что у ссылок нет адреса тебе уже несколько раз обосновали тем, что в С++ не предусмотрено даже типа данных для этого.
R>Давайте пока не потерли модераторы всю "объективность" отдельно взятых товарищей, все-таки напомнить всю полноту объективности "товарищей":
R>
R> Не могу понять ссылки в C++ rg45: Иди подмойся и сопли подотри. R> Не могу понять ссылки в C++ rg45: Слышь дятел, ты нормальный вообще? R> Не могу понять ссылки в C++ rg45: Добоеба ты кусок, покажи мне здесь слово "память"? R>
R>Это не говорит про объективность отдельных товарищей, сколько про объективность людей утверждающих про объективность? Нет? R>А rg45 совет дать стандарт перечитать, слабо? А то он в следующий раз опять сорвется в припадок, и будет спорить что у ссылок нет адреса?
О, жаловаться пришёл, чмошник. Позвонил уже в колокольчик?
Здравствуйте, r0nd, Вы писали:
R>Вы ж хорошо начали с ссылки на стандарт. Гм. А вот эта декларация легальна в С++? Или есть какие-то уровни легальности в C++?
Декларация легальна. Все, что внутри нее — это не C++. В том числе и ваши прогулки по памяти. Так что тут не о чем говорить.
Если вы с помощью этой декларации влезли в память ссылки, взяли адрес этой памяти и присвоили в указатель, то да — это нелегальное получение адреса.
R>Давайте пока не потерли модераторы всю "объективность" отдельно взятых товарищей, все-таки напомнить всю полноту объективности "товарищей":
Слушайте, я говорил только про процитированное. Не надо все сказанное (особенно в соседних ветках) преваливать на меня.
Я не одобряю прямых оскорблений, но и троллинга и вот этого вот "срезания" я тоже не одобряю. Кто тут больше провинился — пусть решают модераторы.
R>А rg45 совет дать стандарт перечитать, слабо? А то он в следующий раз опять сорвется в припадок, и будет спорить что у ссылок нет адреса?
У ссылок нет адреса в языке C++. А в реализации может быть что угодно.
W>>Типа вот подловили кого-то. Я в таких случаях советую прочесть рассказ Шукшина "Срезал". Это вот почти та же ситуация.
R>А rg45 совет дать стандарт перечитать, слабо? А то он в следующий раз опять сорвется в припадок, и будет спорить что у ссылок нет адреса?
То, что ты смог довести rg45 до хамства — твоей особой заслуги нет, rg45, хоть и хороший специалист, но довольно вспыльчивый.
А вот то, что ты в обсуждении языковых средств C++ используешь в качестве аргументов то, что выходит за рамки языка — выдаёт в тебе человека, любящего грязные способы дискуссии