1
有人可以給我一些見解爲什麼這個代碼不工作:類具有指向可變參數模板模板參數
template <template <class... Ts> class Derived>
struct Base
{
Base(Derived<Ts...>* d_param) : d(d_param) {}
Derived<Ts...>* d;
};
我使用GCC 4.8.1。
有人可以給我一些見解爲什麼這個代碼不工作:類具有指向可變參數模板模板參數
template <template <class... Ts> class Derived>
struct Base
{
Base(Derived<Ts...>* d_param) : d(d_param) {}
Derived<Ts...>* d;
};
我使用GCC 4.8.1。
問題是模板模板參數可能具有模板參數的標識符,但它們不可用。根據您的設想使用情況,您需要分別傳遞完整類型或模板及其參數。對於第一種選擇的例子:
template< class Derived >
struct Base
{
Base(Derived* d_param) : d(d_param) {}
Derived* d;
};
用作
Base< std::map< int, double > > x;
,或者如果你需要有單獨的參數,你的第二個選項是:作爲
Base< std::map, int, double > x;
第二個是我正在尋找的。謝謝! – kanielc