Здравствуйте, r0nd, Вы писали:
R>Смелое утверждение. А что дает право тебе считать это «частным случаем»? Тут же в отсутствии аргументации на стандарт, идет слово против слова. Приведи любой «другой случай» доказывающий обратное, где не будет смещения (то есть подтвердиться смелое утверждение rg45) об отсутствии адреса у ссылок.
В x86-64, например, первые сколько-то аргументов (в зависимости от ОС) передаются в регистрах. Достань адрес ссылки t внутри foo.
#include <cstdio>
struct T {
int a;
};
[[gnu::noinline]] int foo(const T& t) {
printf("%d\n", t.a);
return t.a;
}
int main() {
T t{5};
foo(t);
return 0;
}
Здравствуйте, rg45, Вы писали:
R>Здравствуйте, vsb, Вы писали:
vsb>>Ссылка это указатель, который никогда не может быть равен NULL, который нельзя изменить и который не нужно разыменовывать.
R>Это достаточно поверхностное представление.
зато просто и понятно. А то гуру языка сразу накидывают определений на страницу и неофиты бегут от языка как от огня
Здравствуйте, r0nd, Вы писали:
SVZ>>Оптимизация очень даже причем. В релизном кода на стеке может вообще ничего не будет — соптимизируются.
R>B при каком флаге мой код выше соптимизируется до «на стеке может вообще ничего не будет», давайте по конкретнее конфигурацию компилятора номер, версию ОС, название флагов?
Не пойму, то ли ты троль, то ли зануда.
На тебе релизную версию твоего кода.
MSVS 2022, включена оптимизация /O2
Здравствуйте, Worminator X, Вы писали:
WX>Разработчик на C++ не должен воспринимать код как магию, он должен полностью понимать внутреннее устройство программы, и в какие инструкции она компилируется.
Какая чушь! Всю жизнь писал на С, и понятия не имел, в какие инструкции компилируется код.
На плюсах — тем более, без понятия что там за команды целевого процессора.
WX>Поэтому изучению STL и других библиотек должно предшествовать полное изучение языковых возможностей, об этом же пишет доцент Столяров в своих книгах.
А Кнут вот для иллюстрации материала язык ассемблера вымышленной машины использовал.
И что, теперь всем тоже на ассемблере работу со списками изучать?
Каждый учится так, как ему удобнее.
Ты либо слишком толсто троллишь, либо программирование — не твоё.
R> mov rdx, QWORD PTR [rbp-16] ; как видите здесь другой адрес
R> mov rax, QWORD PTR [rbp-8] ; и снова другой адрес (таким образом утверждение что у ссылки нет адреса - ложно), видите это? Мы адресуемся по другому адресу, нет никакого "алиаса"
R>
[/tr] R>
Это ничего не доказывает, так как это всего лишь один из возможных вариантов реализации абстрактной машины.
Здравствуйте, r0nd, Вы писали:
R>не привел любой код доказывающий, что мой случай является «частным»?
Если Вы пообещаете заткнуться и свалить из этой темы, я приведу исходник, ключи компилятора и листинг кода, в котором ссылка хранится исключительно в регистре.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Если Вы пообещаете заткнуться и свалить из этой темы, я приведу исходник, ключи компилятора и листинг кода, в котором ссылка хранится исключительно в регистре.
А тот бы джентльмен сказал: "Заткнись, ПОЖАЛУЙСТА, Хью"
On Jun 17, 2024, 5:56 PM, Евгений Музыченко <20355@users.rsdn.org> wrote:
ЕМ>Если Вы пообещаете заткнуться и свалить из этой темы, я приведу исходник, ключи компилятора и листинг кода, в котором ссылка хранится исключительно в регистре.
А это что за очередной "искатель истины". Твой гаражный кореш, rg45? Че ты здесь забыл? Я не покупаю кабеля, ты немного опоздал, тут нет открытых вопросов, Гена Мужиченко. Эта тема давно закрыта, а твое хамство, можешь оставить при себе вместе с "клюцями копилятала".
⸻ ❧
“Doubt is a killer. You just have to know who you are and what you stand for.” — Jennifer Lopez
Здравствуйте, r0nd, Вы писали:
R>А это что за очередной "искатель истины". Твой гаражный кореш, rg45? Че ты здесь забыл? Я не покупаю кабеля, ты немного опоздал, тут нет открытых вопросов, Гена Мужиченко. Эта тема давно закрыта, а твое хамство, можешь оставить при себе вместе с "клюцями копилятала".
Да щенок ты — глупый и самонадеянный. Не умеющий признавать ошибки. Ну, ничего, жизнь научит.
On Jun 17, 2024, 6:43 PM, rg45 <49596@users.rsdn.org> wrote:
R>Да щенок ты глупый и самонадеянный. Не умеющий признавать ошибки. Ну, ничего, жизнь научит.
Да-да, вон бери Гену своего, тоже по уровню хамства такой же как ты гаражный ареопаг, бери его кабель, и тренируйтесь с опциями компиляции вдвоем.
⸻ ❧
“Women challenge the status quo because we are never it.” — Cindy Gallop
Здравствуйте, student__, Вы писали:
WX>>Разработчик на C++ не должен воспринимать код как магию, он должен полностью понимать внутреннее устройство программы, и в какие инструкции она компилируется.
__>Какая чушь! Всю жизнь писал на С, и понятия не имел, в какие инструкции компилируется код. __>На плюсах — тем более, без понятия что там за команды целевого процессора.
Если Вы хотя бы примерно не представляли, какого рода команды порождает Ваш исходный код (арифметико-логические, целочисленные/плавающие, переходы, вызовы, исключения и т.п.), каков примерно их объем на ту или иную конструкцию языка, какие средства CRT и ОС привлекаются для выполнения программы, то Вам не было никакого смысла писать именно на C или C++. С тем же успехом Вы могли писать на любом другом языке, который тянул Ваши задачи.
Здравствуйте, r0nd, Вы писали:
R>Да-да, вон бери Гену своего, тоже по уровню хамства такой же как ты гаражный ареопаг, бери его кабель, и тренируйтесь с опциями компиляции вдвоем.
Слышь ты, эталон вежливости ссаный, это же ты здесь сопли на кулачок накручивал, листинги просил. Вот тебе и предлагают листинги. Обделался, чепушило?
On Jun 17, 2024, 7:01 PM, rg45 <49596@users.rsdn.org> wrote:
R>Слышь ты, эталон вежливости ссаный, это же ты здесь сопли на кулачок накручивал, листинги просил. Вот тебе и предлагают листинги.
Вот возьми эти свои листинги и… отдай Гене, пусть вникает, может выпустит новую версию кабеля, вместо того чтоб здесь хамить незнакомым людям.
R>Обделался, чепушило?
Ну ты опять за свое! Опять ты про свои какахи? У тебя что проекция? Что за анальный якорь, обсуди с Геной это.
⸻ ❧
“Women challenge the status quo because we are never it.” — Cindy Gallop
Здравствуйте, r0nd, Вы писали:
R>Вот возьми эти свои листинги и… отдай Гене, пусть вникает, может выпустит новую версию кабеля, вместо того чтоб здесь хамить незнакомым людям. R>Ну ты опять за свое! Опять ты про свои какахи? У тебя что проекция? Что за анальный якорь, обсуди с Геной это.
Что ты там скулишь еще, чмо щенявое? То, что ты жидко обделался — это просто медицинский факт.
On Jun 17, 2024, 7:20 PM, rg45 <49596@users.rsdn.org> wrote:
R>Что ты там скулишь еще, чмо щенявое? То, что ты жидко обделался — это просто медицинский факт.
Очередное анальное замыкание у тебя. Это профессиональное или возрастное? Садись на голубой вагон и катись к Гене с листингами.
Зачем мы обсуждаем это ерунду? Давай новую тему создавай, ты там ответишь — я прейду и скажу «нифига не так», ты снова получишь как минимум гаражного пульцера на блиц-ответе «по ссылкам». Помолодеешь на 10 лет. А текущая тема исчерпала. Ну объясни, своему корешу, что он опоздал на сутки.
⸻ ❧
“Folks are usually about as happy as they make up their minds to be.” — Abraham Lincoln
Здравствуйте, r0nd, Вы писали:
R>Очередное анальное замыкание у тебя. Это профессиональное или возрастное? Садись на голубой вагон и катись к Гене с листингами. R>Зачем мы обсуждаем это ерунду? Давай новую тему создавай, ты там ответишь — я прейду и скажу «нифига не так», ты снова получишь как минимум гаражного пульцера на блиц-ответе «по ссылкам». Помолодеешь на 10 лет. А текущая тема исчерпала. Ну объясни, своему корешу, что он опоздал на сутки.
Иди подмойся и высморкайся, щенок. И в следующий раз не залупайся на тех, кто умнее.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Если Вы хотя бы примерно не представляли, какого рода команды порождает Ваш исходный код (арифметико-логические, целочисленные/плавающие, переходы, вызовы, исключения и т.п.), каков примерно их объем на ту или иную конструкцию языка, какие средства CRT и ОС привлекаются для выполнения программы, то Вам не было никакого смысла писать именно на C или C++. С тем же успехом Вы могли писать на любом другом языке, который тянул Ваши задачи.
Как обычно у вас очень странная точка зрения. Компилируемые в нативный код языки (будь то Си, Паскаль, Модула-2, Ada, C++ или Rust) хороши как раз тем, что нормально написанный на них код быстро работает даже если программист вообще понятия не имеет о наборе команд архитектуры, под которую код собирается.
Хотя, может быть вы никогда за рамки низкоуровневой разработки под x86/x64 и не выходили...
Здравствуйте, so5team, Вы писали:
R>>У нас С++ проходил "факультативом". Потому что конкурс был такой большой, что ты абитуриенты обязаны плюсы были знать на уровне профессионального написания. Те, кто не знал плюсы изначально не проходили по конкурсу.
Да все это фигня. Оценочное суждение. Что для одного "профессиональное написание", то для другого "забагованный, переусложненный код с обилием UB".
Здравствуйте, so5team, Вы писали:
S>Компилируемые в нативный код языки (будь то Си, Паскаль, Модула-2, Ada, C++ или Rust) хороши как раз тем, что нормально написанный на них код быстро работает даже если программист вообще понятия не имеет о наборе команд архитектуры, под которую код собирается.
Фишка в том, что перечисленные языки "быстро работают" лишь в том смысле, что они "явно не тормозят" и не требуют "чрезмерного объема памяти". Но среди них лишь C/C++ имеют качественные отличия, остальные различаются лишь количественно.
Иначе говоря, если нечто реализовано на любом из перечисленных (и многих других) языков, то это гарантированно можно реализовать на C/C++. А вот многое из реализованного на C/C++ невозможно переделать на других языках, не создав собственной реализации под конкретную платформу — даже если какие-то реализации для нее уже есть. Понятно, что во многом это не столько свойства C/C++, сколько традиция, но практически на любой новой платформе сперва делается C/C++, и лишь потом — все остальное.
Именно в этом смысле я и говорил, что выбирать C/C++ для задач, не требующих предельной эффективности, особого смысла нет — это больше дело привычки, моды, совместимости с существующим софтом и т.п.
S>может быть вы никогда за рамки низкоуровневой разработки под x86/x64 и не выходили...
Я ж делал софт не только для ядра и голого железа. По привычке пишу на C++ и высокоуровневый код, для которого лучше подошел бы хоть C#/.NET, но для одиночки попросту удобнее делать все на одном привычном языке и в одной системе разработки.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Если Вы хотя бы примерно не представляли, какого рода команды порождает Ваш исходный код (арифметико-логические, целочисленные/плавающие, переходы, вызовы, исключения и т.п.),
Я первый и последний раз писал на асме в универе лабу с использованием i8051.
ЕМ>каков примерно их объем на ту или иную конструкцию языка
знаю среднее количество для С. Это знание никогда не пригодилось в работе, тем более для конкретной конструкции C...
ЕМ>какие средства CRT и ОС привлекаются для выполнения программы
Это с асмом почти никак не связано. Очевидно, что прыжок в системный вызов принято реализовывать в виде специальной отдельной инструкции.
ЕМ>то Вам не было никакого смысла писать именно на C или C++. С тем же успехом Вы могли писать на любом другом языке, который тянул Ваши задачи.
Причины очевидны. Это ЯП для системного и околосистемного софта с реал-тайм требованиями, с вылизанными компиляторами, на которых пишут ядра ОС, и соответственно всё API документировано в терминах C, с кучей литературы и тоннами кода. Нет ни одного ЯП, который состязался бы уверенно по всем этим пунктам одновременно с С и C++.
И чтобы разрабатывать на этих ЯП в большинстве случаев вовсе не нужно знать, передаются ли параметры через регистры или стек и прочую машинерию.