R>Так для того, чтоб что-то утверждать наверняка мы должны сойтись в терминах? Я свое определение что есть объект дал. Что ты называешь объектом? R>И я не согласен с такой интерпретацией. Не хочу тебя ловить на перекручивании фактов, однако все-таки я придерживаюсь определения что «объект — это нечто в памяти», я не утверждал что «любое нечто в памяти — это объект». Тем не менее, возвращаясь к ранее изложеному, что ты называешь объектом?
Здравствуйте, r0nd, Вы писали:
R>Я свое определение что есть объект дал. Что ты называешь объектом?
Вас не смущает то, что мы находимся в теме о C++, и обсуждаем здесь C++? Точно ли Вам следовало давать собственное определение объекта, и ожидать того же от собеседника?
А то чего мелочиться — пусть каждый даст собственное определение, скажем, lvalue, expression, pointer, а потом затеем дискуссию.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>А кто пытался убедить Вас в том, что у типа данных "ссылка" якобы нет адреса в памяти? Вам говорят лишь то, что ссылка не является объектом в терминологии C++, и в языке нет штатного способа получить адрес в памяти, где хранится содержимое ссылки.
Евгений, дайте rg45 ответить. А то получается, вы утверждаете обратное, что ранее утверждал ваш коллега @rg45. Он, например, утверждает "у ссылки нет адреса", вы утверждаете что меня тут никто не убеждает в том что "у типа данных "ссылка" якобы нет адреса в памяти".
ЕМ>Вам говорят лишь то, что ссылка не является объектом в терминологии C++, и в языке нет штатного способа получить адрес в памяти, где хранится содержимое ссылки.
Евгений, может тогда вы скажите, что есть объект в терминалогии C++?
⸻ ❧
“We are what we repeatedly do. Excellence, then, is not an act, but a habit.” — Aristotle
Здравствуйте, r0nd, Вы писали:
R>Так rg45 это пытается убедить. Вот ссылка даже:
R>Не могу понять ссылки в C++ R>
R>- У указателя есть адрес, а у ссылки нет;
R>Евгений, дайте rg45 ответить. А то получается, вы утверждаете обратное, что ранее утверждал ваш коллега @rg45. Он, например, утверждает "у ссылки нет адреса", вы утверждаете что меня тут никто не убеждает в том что "у типа данных "ссылка" якобы нет адреса в памяти".
Так я тебе уже несколько раз ответил. Нет в С++ операции, которая возвращала бы адрес ссылки. И не может быть ибо даже типа данных такого нет. То, что ты видишь в дампе какие-то байты — вообще ничего не значит.
Здравствуйте, r0nd, Вы писали:
R>Так rg45 это пытается убедить. Вот ссылка даже:
R>Не могу понять ссылки в C++ R>
R>- У указателя есть адрес, а у ссылки нет;
Из его слов совершенно ясно, что имелся в виду адрес в терминах C++ — то есть, штатная возможность его получения программой. Если программа применяет операцию "&" к указателю, который компилятор предпочел бы хранить в регистре, компилятору придется положить этот указатель в память и сформировать для него адрес. А штатного способа заставить компилятор хранить в памяти ссылку нет — если он решит держать ее исключительно в регистре, то нет надежного способа помешать ему в этом.
R>что есть объект в терминалогии C++?
Вестимо, это все, к чему в тексте стандарта C++ применяется термин object.
On Jun 16, 2024, 9:35 PM, rg45 <49596@users.rsdn.org> wrote:
R>Не стандарт, конечно же, но как-то понадежнее, чем твое «нечто в памяти»
Хм, довольно странное манера ведения дискуссии, отвечать не на свои вопросы, но на чужие подменяя ответы, хорошо, все-таки как же быть с твоим утверждением что «у ссылки нет адреса в памяти»?
⸻ ❧
“The standard you walk past, is the standard you accept.” — David Hurley
Если под объектом понимается "нечто в памяти", то утверждение неверно:
Что я подменил?
R>хорошо, все-таки как же быть с твоим утверждением что «у ссылки нет адреса в памяти»?
Может, давай начнем с того, что ты не будешь цитаты подменять?
Я про размещение ссылок в памяти вообще ничего не говорил, потому что это никак не регламентировано и отдано на откуп разработчикам компиляторов. Это расположение может быть таким, а может быть другим, а может вообще не быть.
On Jun 16, 2024, 9:57 PM, rg45 <49596@users.rsdn.org> wrote:
R>Так я тебе уже несколько раз ответил. Нет в С++ операции, которая возвращала бы адрес ссылки. И не может быть ибо даже типа данных такого нет. То, что ты видишь в дампе какие-то байты — вообще ничего не значит.
При чем здесь операция? В твоем изначальном императиве не было никаких "операций". Вопрос же звучал просто "у ссылки есть адрес памяти или нет адреса памяти". И все. К этому утверждению и возникли у меня вопросы. Я так понимаю, мои аргументы в виде ассемблерного кода на тебя не действуют, Евгений пытался смягчить формулировки, но так и не отмазал тебя. Каждый остается при своем мнении.
Последнее, я считаю что адрес у ссылки в памяти есть, адресоваться туда можно, переписать значение также можно (напоминаю, что в С++ все можно сделать при желании). Переубеждать тебя я не буду.
⸻ ❧
“Anything can make me stop and look and wonder, and sometimes learn.” — Kurt Vonnegut
R>The following entities are not objects: value, reference, function, enumerator, type, non-static class member, template, class or function template specialization, namespace, parameter pack, and this.
R>Не стандарт, конечно же, но как-то понадежнее, чем твое "нечто в памяти"
Дальше по-справедливости должно быть сообщение r0nd, мол, зачем же я полез спорить без подготовки и с поверхностными выводами, извиняйте, был не прав.
Но этого никогда не случится, потому что для большинства людей признать свои ошибки — невыполнимая задача.
На одном другом форуме постоянно сталкиваюсь с этими адептами познания языков программирования через эмпирический опыт, чуть что лезут в ассемблер проверять свои теории
Хотелось бы пожелать всем им счастья, здоровья и научиться наконец использовать спецификацию языка наперед своих экспериментов.
On Jun 16, 2024, 9:42 PM, Евгений Музыченко <20355@users.rsdn.org> wrote:
ЕМ>А то чего мелочиться — пусть каждый даст собственное определение, скажем, lvalue, expression, pointer, а потом затеем дискуссию.
Здравствуйте, r0nd, Вы писали:
SVZ>>«&a» возвращает, как и ожидается, ни что иное, как адрес объекта, на который ссылается ссылка.
R>Да. Именно это и было целью, однако там дальше есть ассемблерный код, который несмотря на идентичность вывода, адресуется по разным адресам. Что «несколько» противоречит утверждению, что у ссылки нет адреса в памяти. Я утверждаю что есть, ассемблер утверждает что есть. Как же быть?
В ассемблерном коде всё предельно просто.
Две переменные на стеке, в которые кладётся адрес переменной b.
Затем значения этих переменных перекладываются в регистры для вызова printf.
Видимо оптимизация выключена, потому что код совсем кондовый.
Апд. Что касается адреса ссылки. Тебе привели пример, который доказывает, что у ссылки адреса не получить. Под капотом может быть что угодно. Иногда ссылка имеет физическое воплощение, но для программиста оно недоступно.
_____________________
С уважением,
Stanislav V. Zudin
On Jun 16, 2024, 10:25 PM, rg45 <49596@users.rsdn.org> wrote:
R>Чего? А ты ничего не попутал случайно? А ну, давай вместе смотреть:
Снова подмена тезисов с попыткой уйти в очередной раз и не отвечать на вопрос "у ссылки нет адреса в памяти". Я доказал что есть, как быть? Где в стандарте сказано что у ссылки нет адреса? Кстати, ссылку до сих пор не дал, где сказано что "у ссылки нет адреса", или памяти не хватает?
R>Я про размещение ссылок в памяти вообще ничего не говорил, потому что это никак не регламентировано и отдано на откуп разработчикам компиляторов. Это расположение может быть таким, а может быть другим, а может вообще не быть.
On Jun 16, 2024, 10:51 PM, Stanislav V. Zudin <4579@users.rsdn.org> wrote:
SVZ>Видимо оптимизация выключена, потому что код совсем кондовый.
При чем здесь оптимизация? Правильно — не при чем.
SVZ>Апд. Что касается адреса ссылки. Тебе привели пример, который доказывает, что у ссылки адреса не получить. Под капотом может быть что угодно. Иногда ссылка имеет физическое воплощение, но для программиста оно недоступно.
Где пример? Ссылку можно?
⸻ ❧
“Keep your eyes on the stars, and your feet on the ground.” ― Theodore Roosevelt
On Jun 16, 2024, 10:49 PM, rg45 <49596@users.rsdn.org> wrote:
R>Слышь дятел, ты нормальный вообще? Где я что писал про расположение ссылок в ПАМЯТИ? Про «адрес ссылки в памяти» я дал тебе исчерпывающий ответ здесь
Вот! Лезет все-таки институты полезли. Тебя за гаражами учили С++? Там хоть успели объяснить, что у ссылок адреса есть? Или забыли? Сдал форум, сдал-с…
А, стоп, ты хочешь сказать, что указатели имеют адреса, НО НЕ В ПАМЯТИ? Так?
⸻ ❧
“Opportunity is missed by most people because it is dressed in overalls and looks like work.” — Thomas Edison
Здравствуйте, r0nd, Вы писали:
R>Вот! Лезет все-таки институты полезли. Тебя за гаражами учили С++? Там хоть успели объяснить, что у ссылок адреса есть? Или забыли? Сдал форум, сдал-с…
Ну вот и выяснилось, где тебя учили. Иди верни аттестат, скажи, пускай доучивают.
R>А, стоп, ты хочешь сказать, что указатели имеют адреса, НО НЕ В ПАМЯТИ? Так?
On Jun 16, 2024, 10:58 PM, rg45 <49596@users.rsdn.org> wrote:
R>Добоеба ты кусок, покажи мне здесь слово "память"?
Ну вот, вот и закончился весь флёр rg45. Ну что ж такое, я конечно не завсегдатай этого форума, и не в курсе, как здесь принято, и как называют людей, с аргументами которых не согласен или в силу своего профессионализма что-то противопоставить приведенным фактам оппонента.
Выпей водички, rg45. А то инфаркт случится. Возвращаясь к ранее написанному, стоит ли мне ожидать что ты ответишь за свои высказывания, про адрес у ссылок? Или так и будешь скакать по "типам", "людям" и оскорблениям собеседников?
⸻ ❧
“If you change the way you look at things, the things you look at change.” — Wayne Dyer