0
我有一個類期待一個兩個參數模板,像這樣:C++問題「適應」三參數類模板成兩個參數類模板
template<template <class, class> class TwoParamsClass>
class Test
{};
我也有一類這樣的:
template<int a, class A, class B>
class ThreeParamsClass
{};
我需要一個適配器,設置「ThreeParamsClass」的第一個int參數,以便能夠在Test類中使用它們。
在這裏,我的部分解決方案(和它的問題)。
template<int a>
struct Alias
{
template<class A, class B>
struct Type
{
typedef ThreeParmamsClass<a, A, B> Type2;
};
};
,然後,我打電話測試是這樣的:
Test<Alias<1>::Type>
(當然,內部測試我需要帕拉姆並獲得::類型2型)
但問題是,在這之後,I'need包裝測試類,像這樣:
template<int n>
struct Wrap
{
typedef Test<Alias<n>::Type> WrappedTest;
};
但是,我得到這個錯誤:
error: type/value mismatch at argument 1 in template parameter list for 'template class T> class Test'
這是奇怪的,因爲這工作得很好:
template<int n>
struct Wrap
{
typedef Test<Alias<1>::Type> WrappedTest;
};
我希望要清楚,我認爲做這件事2層的問題,但我認爲是更好地問第二個進第一個環境。
感謝
大埃迪,謝謝!你不明白?爲什麼我需要包裝它?或之前的事情? – Hugo 2011-02-28 01:28:35