LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Советую попробовать читать. Прекращайте позориться, посмотрите хотя бы godbolt.

советую начинать ориентироваться в окружающем пространстве и топике в частности. вы написали пример, лютейше неадекватный обсуждаемому вопросу.

мы обсуждаем передачу в функцию структурного типа!!! по значениию и по ссылке. где мол и как это будет копироваться.

вы пишете структурный тип, без единого поля!!!. то есть копировать там просто нечего. и пишете функции передачи типа нулевой длины по ссылке и значению.

затем. вы пишете функцию куда передается по значению обьект нулевой длины… и о чудо! она оказывается совсем короткой. ну правильно. вы в функцию передали только адрес источника, длина ноль, ничто не копируется. код короткий. или вы думаете компилятор вам сгенерит код для копирования нуля байт?

потрудитесь ввести хотя б 4 int поля в свой обьект, чтобы было хоть что копировать.

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

в микроскопический пример вы засадили 2 принципиальные баги короче.

и уберите там писанину в сout, не засоряйте год всякой чепухой.

и вот когда вы все это до ума доведете, увидите что я прав.

Исправление alysnix, :

Советую попробовать читать. Прекращайте позориться, посмотрите хотя бы godbolt.

советую начинать ориентироваться в окружающем пространстве и топике в частности. вы написали пример, лютейше неадекватный обсуждаемому вопросу.

мы обсуждаем передачу в функцию структурного типа!!! по значениию и по ссылке. где мол и как это будет копироваться.

вы пишете структурный тип, без единого поля!!!. то есть копировать там просто нечего. и пишете функции передачи типа нулевой длины по ссылке и значению.

затем. вы пишете функцию куда передается по значению обьект нулевой длины… и о чудо! она оказывается совсем короткой. ну правильно. вы в функцию передали только адрес источника, длина ноль, ничто не копируется. код короткий. или вы думаете компилятор вас сгенерит код для копирования нуля байт?

потрудитесь ввести хотя б 4 int поля в свой обьект, чтобы было хоть что копировать.

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

в микроскопический пример вы засадили 2 принципиальные баги короче.

и уберите там писанину в сout, не засоряйте год всякой чепухой.

и вот когда вы все это до ума доведете, увидите что я прав.

Исходная версия alysnix, :

Советую попробовать читать. Прекращайте позориться, посмотрите хотя бы godbolt.

советую начинать ориентироваться в окружающем пространстве и топике в частности. вы написали пример, лютейше неадекватный обсуждаемому вопросу.

мы обсуждаем передачу в функцию структурного типа!!! по значениию и по ссылке. где мол и как это будет копироваться.

вы пишете структурный тип, без единого поля!!!. то есть копировать там просто нечего. и пишете функции передачи типа нулевой длины по ссылке и значению.

затем. вы пишете функцию куда передается по значению обьект нулевой длины… и о чудо! она оказывается совсем короткой. ну правильно. вы в функцию передали только адрес источника, длина ноль, ничто не копируется. код короткий. или вы думаете компилятор вас сгенерит код для копирования нуля байт?

потрудитесь ввести хотя б 4 int поля в свой обьект, чтобы было хоть что копировать.

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

в микроскопический пример вы засадили 2 принципиальные баги короче.

и уберите там всякую писанину в сout, не засоряйте год всякой чепухой.

и вот когда вы все это до ума доведете, увидите что я прав.