typedef in klassen
-
hallo
es ist ein klassentemplate gegeben:
template<class T> struct foo { typedef T template_arg; };
nun wurde von diesem klassentemplate eine instanz erstellt. ich würde jetzt eine variable aufgrund des typedefs erstellen:
foo<int> instance; instance::template_arg bar;
geht aber nicht, der compiler meldet mir dann:
prog.cpp:15:18: error: ‘instance’ is not a class or namespace
wie kann ich ansonten template_arg instanziieren?
-
foo<int>::template_arg integer;
-
Edit: Ging am Problem vorbei, aber nur 180°
-
Das von ScottZhang oder
decltype(instance)::template_arg bar;
Btw:
Eisflamme schrieb:
typedef typename T template_arg;
-
Eisflamme schrieb:
typedef typename T template_arg;
T könnte ja nach der Definition hier auch z.B. selbst ein Template sein sein, dann geht :: so nicht. Um dem Compiler das klar zu machen, muss
ahh. ist das problem auf die selbe weise gelöst wenn der templateparameter typename statt class ist?
-
Ach mensch,
decltype
. Brett vorm kopp heute, naja 35° +
Decltype ist die gesuchte Lösung, meins war irgendwie redundant ...