prog.cpp: In function 'void foo()':
prog.cpp:8:2: error: need 'typename' before 'T:: value_type' because 'T' is a dependent scope
T::value_type bar('a');
^
prog.cpp:8:16: error: expected ';' before 'bar'
T::value_type bar('a');
^
prog.cpp:10:10: error: 'bar' was not declared in this scope
cout << bar << endl;
^
prog.cpp: In instantiation of 'void foo() [with T = std::basic_string<char>]':
prog.cpp:14:14: required from here
prog.cpp:8:2: error: dependent-name 'T:: value_type' is parsed as a non-type, but instantiation yields a type
T::value_type bar('a');
^
prog.cpp:8:2: note: say 'typename T:: value_type' if a type is meant