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/

Search the boards