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

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

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

Но теперь вы полагаетесь на оптимизацию компилятора.

Есть ли какой-либо (очевидно, специфичный для компилятора) способ гарантировать, что копирование фактически выполнено и что компилятор (или другой инструмент) генерирует предупреждение / ошибку, если копирование не может быть выполнено?

(Я думаю о чем-то отдаленно похожем на Visual C ++__forceinline Затем будет сгенерировано предупреждение, если отмеченная функция не будет встроена компилятором.)

Ответы на вопрос(2)

Ваш ответ на вопрос