при вызове функции в c ++ аргументы копируются в соответствующий параметр. Это инициализация или присвоение?
Семантика передачи аргумента — это инициализация. Это значит, что ваши классы будут использовать конструкторы копирования / перемещения.
Тогда аргументы по значению они построены по принципу копирования (то есть инициализации).
Инициализация: (пожалуйста, проверьте оригинал-проект)
5.2.2 Вызов функции
Когда вызывается функция, каждый параметр должен быть инициализируется с соответствующим аргументом. [Такие инициализации
неопределенно упорядочены по отношению друг к другу] Когда функция
параметры, имеющие тип объекта, должны иметь
полностью определенный тип объекта. [это все еще позволяет параметру быть
указатель или ссылка на неполный тип класса. Однако это мешает
переданный по значению параметр имеет неполный тип класса.] В течение
инициализации параметра, реализация может избежать
строительство дополнительных временных, объединяя преобразования на
связанный аргумент и / или строительство временных с
инициализация параметра. Время жизни параметра заканчивается, когда
функция, в которой он определен, возвращает. Инициализация и
уничтожение каждого параметра происходит в контексте вызова
функция. [доступ конструктора, функции преобразования или
деструктор проверяется в точке вызова в вызывающей функции. Если
конструктор или деструктор для параметра функции выдает
Исключение составляет поиск обработчика в области вызова.
функция; в частности, если вызываемая функция имеет
function-try-block с обработчиком, который может обработать исключение,
этот обработчик не рассматривается.]