Portál AbcLinuxu, 11. května 2025 23:40
#include <iostream> template <class T> T foo(T x) { return x; } template <typename T> T bar(T x) { return x; } void main() { cout << foo("foo") << endl; cout << bar("bar") << endl; system("pause"); }
Řešení dotazu:
class
tam, kde očekáváte třídu, protože např. voláte nějaké metody (design by contract; tam základní typ být nemůže), a typename
tam, kde používáte jen hodnoty. V některých případech, kde to nemůže být základní typ, dokonce ani nejde použít typename
, třeba u template <template <typename> class Type>
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.