C++ 实现在模板参数中定义的类型
此代码在Visual Studio 2013上运行,但在gcc 4.9.2上不运行:C++ 实现在模板参数中定义的类型,c++,visual-studio,templates,gcc,types,C++,Visual Studio,Templates,Gcc,Types,此代码在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; } 模板 void foo(){ T::值_类型条('a'); cout您需要告诉编译器
template <typename T>
void foo(){
T::value_type bar('a');
cout << bar << endl;
}
int main() {
foo<string>();
return 0;
}
模板
void foo(){
T::值_类型条('a');
cout您需要告诉编译器,T::value\u type
命名一个类型,以便它知道如何解析声明
typename T::value_type bar('a');
有关在何处以及为什么需要执行此操作的更多详细信息,请参阅。您会遇到什么错误,这将有所帮助