0
有一個模板函數˚F需要它的模板參數類型牛逼有一個名爲內一個內部類。模板功能需要內部類的存在在非模板類
Inside f該類別T ::內部將被實例化。
先試試。
//
// "error: need 'typename' before 'T:: Inner' because 'T' is a dependent scope"
//
template <typename T>
void f(void)
{
T::Inner i;
}
我得到的,所以來這裏的第二次嘗試,在這裏我不明白什麼是錯的:
/// "error: expected ';' before 'i'
template<typename T>
void f (void)
{
typename T::Inner I;
I i;
}
這是爲什麼?
以我的理解: 內部被聲明爲類型。 模板尚未實例化。 是否內部存在或不首先變得相關 實例化 - 不定義。我哪裏錯了?
作品!非常感謝你。 – elrat
我會使用'使用I = typename T :: Inner;'來代替。順便說一下,在'using'語句的RHS中不應該要求IMO typename,在這裏很明顯,你可以擁有的唯一東西就是一個類型(或者,如果「decltype」的一部分,編譯器也很清楚什麼是RHS)。 – vsoftco
@vsoftco寫一篇論文併發送到[email protected] – Brian