Cześć,
mam mniej więcej coś takiego.
#include <vector>
template <class T = int>
struct A
{
typedef T TT;
T v;
};
int main() {
std::vector<A::TT> vec;
return 0;
}
Lecz tak jak w temacie dostaję błąd error C2923: 'std::vector' : 'A::TT' is not a valid template type argument for parameter '_Ty'
Prosiłbym o pomoc w wyjaśnieniu jak temu zaradzić. Z góry dzięki.
EDIT
Znalazłem odpowiedź po poszukiwaniach. Tu http://stackoverflow.com/a/613132 jest wyjaśnione. Zacytuję kawałek: The answer is: We decide how the compiler should parse this. If t::x is a dependent name, then we need to prefix it by typename to tell the compiler to parse it in a certain way.
Czyli w moim probemie wystarczyło zrobić
std::vector<typename A::TT> vec;
Nie wiedziałem czy usuwac temat czy nie. Niech moderatorzy zdecydują