Moi.
Malleista sen verran että mallihan esitellään vaikka näin (tämä siis esmes):
template
malli nop(malli n) {
static malli s = 5;
return s n;
}
Tai näin:
template
malli nop(malli n) {
static malli s = 5;
return s n;
}
Manuaalit sanoo että noilla class ja typename ei ole mitään eroa, onko näin? ja kumpaa olisi "esteettisempi" käyttää?
Malleista sen verran että mallihan esitellään vaikka näin (tämä siis esmes):
template
malli nop(malli n) {
static malli s = 5;
return s n;
}
Tai näin:
template
malli nop(malli n) {
static malli s = 5;
return s n;
}
Manuaalit sanoo että noilla class ja typename ei ole mitään eroa, onko näin? ja kumpaa olisi "esteettisempi" käyttää?
Vastaukset 3
Vanhimmat
On eroa koska tämä kääntyy:
template < template < typename T> class A>
struct Foo { };
Mutta tää ei käänny (ja on kuulemma väärin):
template < template < typename T> typename A>
struct Foo { };
"ja kumpaa olisi "esteettisempi" käyttää?"
Koska templaten 'macrokorvaus'tyyppi voi olla mikä tahansa - ei vain class - niin paljon loogisempaa on typename (mikäli mahdollista). Esimerkissäsi on malli*funktio* niin miten luokkakäsite class siihen liittyy? Oikein, ei mitenkään.
Ja miksi helvetissä class-sanalle yleensäkin on annettu kaksoismerkitys?
Moi.
Mitä tuossa tapahtuu? siis meinaan että mitä tämä tekee ja miten käytän/kutsun tätä?:
template < template < typename T> class A>
bool moi() {
return true;
}
Siis meinaan että spesialisointihan menisi jotenkin näin:
template
bool heh() {
cout
Malli argumentti
Mallin käännösmalli
Toden näköisesti sekoitti vain enemmän :)