sezione 4.3 della C++ Templates stati 'Non essendo in grado di utilizzare letterali in virgola mobile (e semplici espressioni a virgola mobile costanti) come argomenti template ha storici ragioni.'specializzazione del modello con galleggiante come non tipo
Allo stesso modo,
$ 14,1/7 membri - "Un non-tipo modello-parametro non deve essere dichiarato di avere in virgola mobile, classe o tipo void [Esempio:
.
template<double d> class X; // error
template<double* pd> class Y; // OK
template<double& rd> class Z; // OK"
Qual è la ragione storica che è bein g parlato nel libro nella citazione di cui sopra?
Guardando al motivo per cui Y e Z sono validi ma non X, l'intera sfida relativa all'utilizzo di parametri di tipo non tipo di tipo floating non ha nulla a che fare con i puntatori/riferimenti?
Perché i parametri di tipo non di tipo non possono essere di tipo classe?
@aaa carpa: Sì, potrei capirlo. Sono curioso di sapere quale sia la ragione storica per cui non si possono distinguere i tipi in virgola mobile. Sto anche cercando di capire perché X non è formato da Y o Z. – Chubsdad
http://groups.google.com/group/comp.lang.c++/browse_thread/thread/2f4c0b5a5ae627bc/bbe916d9e75426de?hl=it&ie=UTF -8 & oe = utf-8 & q = virgola mobile + letterali +% 28as + modello + argomenti + storico + motivi & pli = 1 – Anycorn
@aaa carpa: no, non lo è. L'indirizzo passato sarebbe noto solo al linker, ma il compilatore ha già bisogno di istanziare. – MSalters