Я использую C++. Я хочу, чтобы умножить матрицуМатричное умножение без копирования с помощью оператора *
class mat
{
mat operator *(const mat& mA,const mat& mB)
}
Если РВО включен, то я буду иметь прямое использование значения, вычисленного в оператора * **. Но если RVO выключено, мне придется копировать объект. RVO не входит в стандарт. Я хочу быть уверенным, что каждый кондоминиум будет делать размножение, не справившись. Каким будет лучший способ избежать копирования объекта. Мой вопрос включает C++ 11,14.
Есть ли способ переписать * operator ** для умножения матриц без результата обработки, даже с RVO OFF.
Почему бы вам когда-либо отключить РВО и скопировать Пропуска? Можете ли вы рассказать о конкретной проблеме, которая у вас есть? –
Я хочу быть уверенным, что на каждом компиляторе поведение будет таким же. –
Это вряд ли появится, каждый компилятор компилирует то, как его дизайнеры решили, единственное, что вам может потребоваться, это сохранение семантики. –