LINUX.ORG.RU

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

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

Оппонент, осознав свою неправоту, позорно слился.

ну почему. оппонент привел довольно удачный пример некоей обещанной эффективности(в частных случаях) в передаче по значению…только не обратил внимания на накладные расходы (по коду) которые немедля отягощают любой вызов подобной функции.

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

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

а почему копировать снаружи это пепец - очевидно.

  1. рост кода, даже для одного параметра, и чем их больше, тем рост страшней.

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

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

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

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

Оппонент, осознав свою неправоту, позорно слился.

ну почему. оппонент привел довольно удачный пример некоей обещанной эффективности(в частных случаях) в передаче по значению…только не обратил внимания на накладные расходы (по коду) которые немедля отягощают любой вызов подобной функции.

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

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

а почему копировать снаружи это пепец - очевидно.

  1. рост кода, даже для одного параметра, и чем их больше, тем рост страшней.

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

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

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