Posted By: Neuromancer (... bright eyes ...) on 'CZprogram'
Title:     Re: templaty
Date:      Mon Jan 19 13:33:13 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),

Caues,
  sveho casu jsem si se sablonama celkem hodne hral a asi bych se mohl pokusit 
donutit ten kompilator nejak to sezrat, ale potreboval bych kompletnejsi kod.
Nicmene bylo spoustu pripadu, kdy jsem MSVC proste nedonutil zkompilovat 
metodu tridy mimo definici tridy. Plus ruzne podivne padani kterym pomuze
prohozeni 2 metod etc etc.. celkem smrt. Na castecne specializace muzes
prakticky zapomenout.
Ovsem pokud mas moznost, sezen si MSVC .NET 2003 (ne ty predchozi!), ty uz
umi se sablonama prakticky vse.

  >         Krysa 
>                 rat@atrey.karlin.mff.cuni.cz              Jsem Krysa
>                 http://atrey.karlin.mff.cuni.cz/~rat/
--------------------------------------------------------------------/
|       ICQ 20529980                               Neuromancer       |
|              Take me far away, where the dragons fly,              |
/------------ leave me to my dreams, or just let me die. ------------

Search the boards