假設我有下面的類: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