1
template <typename T>
class Foo {
public:
T val;
Foo(T p_val) : val(p_val) {}
T sum(Foo<T> other) { return val + other.val; }
};
int main() {
Foo<int> f1(3);
Foo<int> f2(5);
std::cout << f1.sum(f2) << std::endl;
}
これは、期待通りに8
を出力します。テンプレートクラス関数の構文のテンプレートクラス引数
メンバ関数のシグネチャをT sum(Foo other)
(<T>
を削除して)に変更しても、それでも8
が出力されます。一般的には、私がその<T>
を含めるかどうかは重要ですか?私はVisual C++ 2015を使用しています。