Posted By: Rat (prilis mnoho her) on 'CZprogram'
Title: templaty
Date: Sun Jan 18 16:00:52 2004
i Zdar,
tak jsem si zacal hrat po dlouhe dobe (kdy jsem je nemel moc v oblibe) s
templatama v C++ a narazil jsem na par zajimavych problemu:
1) nechapu vyznam vnorenych templatu, ala: template <T0, template <T1> T2> ...
dalsi veci se tykaji pouze MSVC, sic v gcc bez nejmensich problemu chodi:
2) specializace:
Mam
zakl.: template <T> class A { typedef T &ref; }
spec.: template <> class A<void> { typedef void ref; }
spec.: template <T> class A<T&> { typedef T &ref; }
Posledni radek v MSVC neprojde, da se to napsat nejak jinak?
3) Pozdejsi definice metody:
template <T> class B; // jen deklarace
template <T> class A { template <T1> B<T1> *f(); };
// nekde definice B...
template <T> template <T1> B<T1> *A<T>::f() { return new B<T1>; }
Opet posledni radek v MSVC neprojde, jak se da tady jinak nadefinovat metoda
mimo puvodni tridu (neprojde ani template <T, T1>.
Tot mozna asi vse, zkousel jsem MSVC6 i MSVCNET (ci jak se to zove), druhe
melo nevyrazne lepsi vysledky...
PS: Jo, obcas (asi skoro vsude) mi tam chybi typename (ty samozrejme v orig.
kodu jsou...)
Dik za odpoved(i),
Krysa
rat@atrey.karlin.mff.cuni.cz Jsem Krysa
http://atrey.karlin.mff.cuni.cz/~rat/