Frage zum Standard
-
I hätte da mal eine Frage was der Standard zu Templates sagt. Wenn ich eine template Klasse habe müssen dann alle Methoden dieses Templates auf eine Klasse anwendbar sein damit ich eine Instance mit dieser Klasse erschaffen kann oder nur die die eigentlich benutzt werden?
Also ist dieser Code standard konform?:
template<class T> class A{ T t; public: void set_a(int i){t.a=i;} int get_b(){return t.b;} }; class B{ public: int a; //kein b }; int main(){ A<B>c; c.set_a(6); return 0; };
Mein Kompiler sluckt es ohne Warnung, aber kann ich davon ausgehen, dass andere Kompiler es auch schlucken?
Danke in Voraus.
-
Ja, er ist Standardkonform.
Bei Templates werden nur jene Funktionen instanziiert, die auch gebraucht werden.
-
Ok danke