2015-07-20 60 views
0

這段代碼中定義的類型上的Visual Studio 2013運行,但不會對GCC 4.9.2:實現在一個模板參數

template <typename T> 
void foo(){ 
    T::value_type bar('a'); 

    cout << bar << endl; 
} 

int main() { 
    foo<string>(); 

    return 0; 
} 

看來,Visual Studio的2013型演繹,讓我實現模板中定義的類型參數,而gcc 4.9.2 does not

有沒有解決方法,這將允許在gcc中的這種行爲?

+0

你得到了什麼錯誤,這將有助於 –

回答

2

您需要告訴編譯器T::value_type命名一個類型,以便它知道如何解析聲明。

typename T::value_type bar('a'); 

爲你的需要在哪裏和爲什麼要做到這一點的詳細信息,請參閱this question

相關問題