Копирование - это изящный метод оптимизации, и в некоторых случаях использование копирования может быть быстрее , чем передача ссылок «вручную» .
Итак, давайте предположим, что вы определили критический путь кода, в котором вы полагаетесь на тот факт, что удаление копирования выполняется вашим компилятором для пути кода для максимальной производительности.
Но теперь вы полагаетесь на оптимизацию компилятора. .
Есть ли какой-либо (явно зависящий от компилятора) способ гарантировать, что удаление копии действительно выполняется и чтобы компилятор (или другой инструмент) генерировал предупреждение / ошибку, если удаление копии не может быть выполнено?
(I Я думаю о чем-то отдаленно похожем на Visual C ++ __ forceinline
, чем выдаст предупреждение, если отмеченная таким образом функция не встроена компилятором.)