このシナリオで呼び出されたものを私に案内する人はいますか?私は3番目のコンストラクタが呼び出されることを知っている次に自動割り当てオペレータの作成
mat4<float> matrix;
float mf[4][4];
//fill the float matrix here
matrix = mf;
を呼び出す場合は、上記のコードで
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に行列をコピーし、mat4への参照を返すだけですが、自動的に作成された代入演算子にオーバーヘッドがない場合は、それに固執します。