私は、次のテンプレート関数があります。C++専門のコンストラクタ(角括弧をスキップ)
template<>
int test_function(int arg) {return arg;}
この:
template<typename T>
T test_function(T arg) {return arg;}
を私は整数のこの特殊なバージョンを作成することができますこの関数を整数でたくさん使うと実用的です。だから、私はそれを呼び出すことができます。今すぐ
test_function(some_integer); // easy!
test_function<int>(some_integer); // not necessary all the time.
I持って、次のクラス:
Foo foo1; // how do I do this?
Foo<int> foo2; // I don't want to use this all the time.
がどのように私はこれを定義することができます。私はそれを呼び出すことができるようにしたい
template<typename T>
class Foo
{
public:
Foo();
};
クラスを使用しないでインスタンスを作成できるようにするにはどうすればいいですか?あまりにもハードだと思うべきではありませんが、私はあなたがデフォルトの引数(int)を使用し、必要がありますいずれかのこれまでの...
'int'のために' test_function'の特殊化を作成する必要はありません(別の何かをしない限り)、引数から型を推論することができます。 –
引数の型を推論してmake_関数で構造体を構築します。例については、std :: make_tupleを参照してください。 –
@AntonSavinああ、私はヒントのためにあなたをありがとう、参照してください! – donald