私はC++を使い慣れていないので、テンプレートを使用しようとしていますが問題があります。 私がしようとしているのは、テンプレートを使って数値の2乗を計算しようとします。数値はint、float、および複素数のような基本データ型です。私はまた、テンプレートを使用して、複雑なクラスを実装し、次のようにコードは次のとおりです。C++テンプレートの特殊化方法の質問
template <typename T>
class Complex {
public:
T real_;
T img_;
Complex(T real, T img) : real_(real), img_(img) { }
};
template <typename T>
T square(T num) {
return num * num;
}
template <>
Complex<typename T> square(Complex<typename T> num) {
T temp_real = num.real_*num.real_ - num.img_*num.img_;
T temp_img = 2 * num.img_ * num.real_;
return Complex(temp_real, temp_img);
}
私は特殊なケースに対処するためにテンプレートの特殊化を使用しようとしましたが、それは私にエラーました:
using ‘typename’ outside of template
をし、テンプレートの特殊化メソッドでエラーが発生します。私の間違いを指摘してください。ありがとう。
答えはありませんが、「」ヘッダーを参考にすれば、コードを一切必要としなくなる可能性があります。 –