假设我有下面的类:C++推断模板参数
template <class T, class U, class V> Foo
{
...
};
模板参数具有独特的映射,所以可以推断出U和V基于就是T上的其他模板参数。例如,如果T是双重的,U和V将总是一些类别D1和D2,并且如果T是浮动的,则U和V将总是其他一些类别F1和F2。
考虑到这一点,有没有一种方法可以只传入一个模板参数,并让编译器推导出另外两个参数?
我知道简单的答案是将这些其他类模板化,并将模板参数T传递给它们,但我无法使这些类模板化(它们是由工具自动生成的)。
理想我想能够使用的typedef或#定义,像这样:
typedef Foo<double> Foo<double, D1, D2>
typedef Foo<float> Foo<float, F1, F2>
然而,这些不进行编译。我想知道是否有一种方法可以使用模板元编程或模板模板参数来解决这个问题,但我似乎无法将这些概念包裹起来,并且我有一种直觉,那里可能有更简单的答案。任何人有任何想法?
谢谢!这工作完美。 – thompsonja 2013-02-22 15:36:59
@thompsonja:很高兴帮助:-) – 2013-02-22 15:42:41