Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Help on Metaprogramming

[es] :: C/C++ programiranje :: Help on Metaprogramming

[ Pregleda: 2523 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
212.200.217.*

ICQ: 208550327


+14 Profil

icon Help on Metaprogramming12.01.2008. u 14:44 - pre 198 meseci
Sta mislite o tome? :)

Nov sam u toj oblasti pa ako imate neke linkove ili primercice, post :)

A da, svideo mi se koncept kreiranja unroll for petlje :), tako da, mislim da je dobra stvarcica ( u pojedinim slucajevima )
EOF
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.bethere.co.uk.



+4 Profil

icon Re: Help on Metaprogramming12.01.2008. u 23:56 - pre 198 meseci
To je gotovo trivijalni primer. Za neke prave stvari pogledaj, izmedju ostalog, sve radove na http://erdani.org/ i prouchi knjigu "Modern C++ Design" od Alexandrescu-a.
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
91.150.120.*

ICQ: 208550327


+14 Profil

icon Re: Help on Metaprogramming13.01.2008. u 14:29 - pre 198 meseci
Hvala! Happy new Year! :)
EOF
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
77.46.203.*

ICQ: 208550327


+14 Profil

icon Re: Help on Metaprogramming18.01.2008. u 20:04 - pre 198 meseci
Kniiga "Modern C++ Design" je opasna :)

Ljudi su digli ceo sistem programiranja na jos visi nivo. ( Do complex stuff at simple way and produce more complex programs ) (P.S Jedva ceka neki moderniji sistem programiranja :) )

Jos uvek sam sumnjicav prema statickom polimorfizmu ali, da li je ovo nov zanr programiranja? OOP kakvog sam ja znao je izgubio smek. Damned book :)



EOF
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.bethere.co.uk.



+4 Profil

icon Re: Help on Metaprogramming19.01.2008. u 01:57 - pre 198 meseci
Nije "nov", a nije ni preterano elegantan u trenutnoj inkarnaciji C++a (za neke lepshe detalje pogledaj jezik D).
Shta god radio (osim ako ne pishesh suve biblioteke) necesh moci bez dinamichkog polimorfizma. Izazov je naci pravi odnos.
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
77.46.203.*

ICQ: 208550327


+14 Profil

icon Re: Help on Metaprogramming19.01.2008. u 11:17 - pre 198 meseci
Uvek sam se pitao kako stl::vector prihvata i pointere i obicne vrednosti i kako zna da li je pointer ili ne.

TypeTraits je mocna stvarcica :) Mogucnosti su ogromne!

NastyBoy, znas li jos neke primere gde se oni mogu koristiti?

Razmisljao sam, npr... Imamo klasu Brojevi, klasu Slova... I sada, zelimo da napravimo mehanizam za stampanje. Mozemo ih izvesti iz klase Prikaz da bi imali mogucnost da prikazujemo. Svaka klasa ce imati svoj mehanizam za prikazivanje. Tabla je objekat na kojem se prikazuju.

void Stampaj(Prikaz * p,Tabla * t)
{
p->PrikaziMe(t);
}

Brojevi su int, slova su char i svaka klasa moze sama sebe lepo da prikaze... Tabla ima mehanizam stampajInt(), stampajChar(), koje svaka klasa poziva.

A sa traits

Code:


template<class T>
Traits {};

template <>
class Traits<Brojevi>
{
  public:
     typedef int Type;
};

template <>
class Traits<Slova>
{
  public:
     typedef char Type;
};

template<class T>
void Stampaj(T * p, Table * t)
{
 
     T::Type data = p->GetData();

     t->Stampaj(data);
}



Krajnji rezultat da smo stampanje stavili u table i u odnosu na to, kakav tip podatka dobije, tabla stampa (int ili char).
Na jednom mestu imamo trazenu funkcionalnost i ako nam treba da menjamo prikaz char-ova, to mozemo uraditi na jednom mestu a ne u svim klasama gde se char-ovi prikazuju ( mada, sve vezano za prikazivanje moze stajati na jednom mestu i bez Traits - u klasi Prikaz ).

E sad... Ja vise volim design model gde klasa sama sebe iscrtava i koriscenje svih pogodnosti virtuelnih funkcija. Da li su Traits u ovom slucaju nepotrebno iskorisceni ( jos uvek sam pocetnik ) ili ovo moze biti jedan od nacina dizajniranja ovakvog programa koji moze olaksati stvari u pojedinim trenucima ( npr, dodavanje dodatnih funkcionalnosti kasnije sa manje izmena u kodu, itd?

EOF
 
Odgovor na temu

[es] :: C/C++ programiranje :: Help on Metaprogramming

[ Pregleda: 2523 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.