Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Još nešto u vezi template klasa

[es] :: C/C++ programiranje :: Još nešto u vezi template klasa

[ Pregleda: 3595 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.46.EUnet.yu

Sajt: www.mycity.rs


+1 Profil

icon Još nešto u vezi template klasa26.04.2003. u 00:03 - pre 255 meseci
Tata, čitao sam onaj tvoj text o templates-ima, i zaprepastio se kad sam probao svoju template klasu da odvojim u poseban object fajl :)
Shvatio sam da se template kompajlira u main.cpp, ali me sada kopka drugo nešto.

Uzmimo na primer da hocu svoje template klasu da distribuiram kao lib.
Dakle, iskompajlira se sve, dobijem .lib fajl (ili .a kod gcc-a), i kako sad da neko koristi tu template klasu, a da ne kompajlira i template klasu, zamisli da nema sors od te template klase?
Kako je to rešeno recimo u boost biblioteci, ili u STL biblioteci?
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Još nešto u vezi template klasa26.04.2003. u 00:20 - pre 255 meseci
Ukratko, ne može.

Da bi napravio klasu od šablona (specijalizaciju) moraš da imaš izvorni kod.

Sve template biblioteke (STL, Boost, pa čak i MS-ove biblioteke ATL i WTL) su distribuirane kao izvorni kod (kladim se da je Leka veliki obožavalac šablona :) )
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.21.EUnet.yu

Sajt: www.mycity.rs


+1 Profil

icon Re: Još nešto u vezi template klasa26.04.2003. u 12:41 - pre 255 meseci
Ajd mi onda objasni ovo:
Code:

#include <vector.h>

int main ()
{
  vector<int> v1;
}


Ovde se ukljucuje header.

Jedino ako je vector<int> ugradjen (vec iskompajliran) tip, u samu STL biblioteku?
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.dial.tiscali.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Još nešto u vezi template klasa26.04.2003. u 13:38 - pre 255 meseci

Za koje pitanje je ovaj odgovor? :))

Biblioteke šablona moraju da dolaze u sorsu. Šablone (laički) zamišljam samo kao malko naprednije (i type checked) #define direktive. Oni su tu samo i isključivo da bi ti uštedeli kucanje.

Zato ni ne možeš da imaš kompajlirane biblioteke šablona. Sa druge strane ako napraviš vektor intova, napravio si specijalizaciju šablona, tj. popunio sve parametre hipotetičnog #define-a tako da je rezultat kod koji se može prevesti.

Dakle: ako želiš da argument šablona može da bude parametar, i da korisnik šablona može da bira njegov tip pre korišćenja, onda davanje sorsa ne možeš izbeći.

Ali ako u kodu napraviš specijalizaciju nekog šablona, dakle fiksiraš parametre, rezultujuće klase se mogu prevesti sasvim regularno kao i smestiti u biblioteku. Jedino što ćeš ti, jelte, i u tom slučaju da daš izvorni kod. :)) Open source.

f
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.9.EUnet.yu

Sajt: www.mycity.rs


+1 Profil

icon Re: Još nešto u vezi template klasa26.04.2003. u 13:46 - pre 255 meseci
evo sad pogledah std_vector.h, iako je header, u njemu je ceo sors :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: Još nešto u vezi template klasa

[ Pregleda: 3595 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.