4
私はクラスfoo
に2つのテンプレート関数Add()
とSubtract()
を含んでいます。テンプレート以外のクラス内の複数のテンプレート関数
struct foo
{
template <typename U>
U* Add();
template <typename U>
U* Subtract();
};
は、それらの両方に同じテンプレートパラメータU
を使用することが正しいですか?また、テンプレート関数宣言の前に毎回template <typename U>
と書く必要がありますか?
コードがコンパイルされましたか?メンバ関数のテンプレートが宣言されている方法に関して、非メンバ関数のテンプレートと異なると思われるのはなぜですか? –
@DietmarKühlコードがコンパイルされているということは、コードが以下のような十分な証拠ではありません。正しいb。意図どおりに動作します。 – SergeyA
@SergeyA:true。しかし、例えば完全に異なる2つのコンパイラを使用して、両方がコードを飲み込んでいるかどうかを確認することは、問題が正常であることを示すものです。また、それはまだ残っています。メンバー以外の関数テンプレートと比べて、何が違うのでしょうか? –