typedef ze struktury w wektorze, błąd: is not a valid template type argument for parameter '_Ty'

0

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ą

1
#include <iostream>
#include <vector>
using namespace std;

template<typename T = int>
struct Foo{
	using Bar = T;
};

int main() {
	vector<Foo<>::Bar> vec;
	return 0;
}
0

Dzięki za odpowiedź, ale właśnie chciałem uniknąć używania przy tym domyślnego szablonu

1 użytkowników online, w tym zalogowanych: 0, gości: 1