Iは、次のクラスがあるとしますテンプレートパラメータが異なるマッピングをC++推論テンプレート引数
template <class T, class U, class V> Foo
{
...
};
持っているので、私はTが何であるかに基づいて、他のテンプレート引数UとVを推定することができます。たとえば、Tがdoubleの場合、UとVは常にクラスD1とD2になり、Tがfloatの場合、UとVは他のクラスF1とF2になります。
これを念頭に置いて、私は1つのテンプレート引数だけを渡すことができ、コンパイラに他の2つのパラメータを推測させる方法がありますか?
私は単純な答えは、これらの他のクラスもテンプレート化してテンプレート引数Tをそれらに渡すことだと知っていますが、これらのクラスをテンプレート化することはできません(これらはツールによって自動生成されます)。
理想的には私はそうのようなのtypedefかに#defineを使用することができるだろう:
typedef Foo<double> Foo<double, D1, D2>
typedef Foo<float> Foo<float, F1, F2>
しかし、これらはコンパイルされません。私はテンプレートのメタプログラミングやテンプレートテンプレートのパラメータを使ってこの問題を解決する方法があるのだろうかと思っていますが、私はそれらの概念を頭に入れているようには思えません。誰にもアイデアはありますか?
ありがとう!これは完全に機能します。 – thompsonja
@thompsonja:喜んで助けました:-) –