我想訪問類之外的模板參數。我通常這樣做如下:typedefing非類型模板參數
template <class T>
class A
{
typedef typename T T;
}
A<int>::T;
我想能夠對非類型的模板參數做同樣的事情。這是行不通的:
template <int T>
class A
{
typedef typename T T;
}
A<3>::T;
我會澄清爲什麼我需要這個。我想要定義第二個類如下:
template <class C>
class B
{
static int func() {return C::T;}
}
B<A<3> >::func();
這樣做的正確方法是什麼? 非常感謝。
'class'可以與'typename'互換,'int'不可以。另外,你想達到什麼目的? – antonijn 2013-02-10 15:33:50
其實,你不能在任何一個代碼中使用'typename',因爲'T'不是一個相關的名字,你也不能重新定義'T'。 – 2013-02-10 15:36:05
在未限定名稱之前的'typename',例如從屬非限定名稱'T',是不可能的。 – 2013-02-10 16:38:25