004
05.10.2007, 22:31 Uhr
0xdeadbeef
Gott (Operator)
|
Template typedefs gibts nicht. Was du aber machen kannst, ist, innerhalb von templates typedefs zu definieren. Das sieht dann zum Beispiel so aus:
C++: |
template<typename T> struct cache { T* A; T* t; T* mk; int size; int vec_row; };
// Für 32 bit unsigned int gibts bereits ein alias typedef uint32_t key_t;
template<typename T> cache_types { typedef std::pair<key_t, cache<T> > pair; }
// ...
cache_types<int>::pair foo;
|
...in diesem Fall wär auch denkbar,
C++: |
typedef uint32_t key_t;
template<typename T> struct cache { T* A; T* t; T* mk; int size; int vec_row;
typedef std::pair<key_t, cache> pair; };
// ...
cache<int>::pair foo;
|
zu schreiben.
Wichtig zu verstehen ist, dass eine Klassenvorlage keine Klasse, sondern eben eine Vorlage ist, die erst durch Konkretisierung zu einer Klasse wird - und std::pair erwartet da halt eine Klasse als Parameter, keine Vorlage. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 05.10.2007 um 22:33 Uhr von 0xdeadbeef editiert. |