Template-Funktions-Spezialisierung in Template-Klasse
-
stefanjann schrieb:
Wofür brauche ich dann eigentlich das template<> noch, wenn ich doch mit einer Überladung genausoweit komme.
WAs mich gerade verwirrt, ist, ob du mit diesem template<> explizite instantiierung meinst. Also so etwas:
template<class T, class Allocator> class vector { /* ...*/ }; template class vector<int, std::allocator<int> > {/* ... */};
Edit: Hat seldon schon gesagt. Du kannst natürlich auch sowas machen:
#include <iostream> using std::cout; template<typename type>//Mit templates void func(type const& ref) { std::cout << ref << '\n'; } void func(int a)//Hier komplett ohne templates { std::cout << a << '\n'; } int main() { func<int>(5); func(1); }
Edit: Hier könnte der Parameter deduziert werden, aber trotzdem :p