型が一致するかどうかを確認する標準的な方法は次のとおりです。
template<class T, class U>
struct is_same { static const bool value = false; };
template<class T>
struct is_same<T, T> { static const bool value = true; };
そして、私はそれを次のように使用します:
if (SamTypeCheck<double,double>::value)
cout<<"same"<<endl;
else
cout<<"different"<<endl;
if (SamTypeCheck<int,double>::value)
cout<<"same"<<endl;
else
cout<<"different"<<endl;
静的メンバー変数を使用しているため、これはスレッドセーフではないように見えます。それは本当にスレッドセーフではありませんか?コードはどういうわけか私を混乱させました。同じ機能を備えたスレッドセーフなものを使用する代わりに何を使用しますか?
なぜこれが必要なのですか?
行列を処理するためのテンプレート化されたクラスがあり、関数が型ごとに異なる行列の乗算と反転にインテル® コンパイラーのマス・カーネル・ライブラリーを使用したいので、行列演算を実行する前に型を知る必要があります。
ありがとうございました。