誰かがこのシナリオで呼ばれるものを私に案内してもらえますか?
template<class T>
class mat4 {
public :
T matrix[4][4];
mat4();
mat4(vec4<T> i, vec4<T> j, vec4<T> k, vec4<T> t);
mat4(const T input_matrix[4][4]);
//~mat4();
mat4<T> Transposed() const;
void Transpose();
mat4<T> Inversed() const;
void Inverse();
};
上記のコードで私が呼び出す場合
mat4<float> matrix;
float mf[4][4];
//fill the float matrix here
matrix = mf;
次に、3番目のコンストラクターが呼び出されることを知っています(明示的ではありません)が、その横で何が呼び出されますか?代入操作から作成された一時オブジェクトを取得する行列のコピーコンストラクター?私はそれのためにカスタム代入演算子を作成するべきか、それとも単にそれ自体を処理させるべきかどうかを議論しています。カスタム演算子は、行列をmat4にコピーして、mat4への参照を返すだけですが、自動作成された代入演算子にオーバーヘッドがない場合は、それに固執したいと思います。