12 Stimmen

Vorlagenspezialisierung mit Float als Nichttyp

Abschnitt 4.3 der C++-Vorlagen erklärt: "Nicht in der Lage zu sein Gleitkomma-Literale (und einfache konstante Fließkomma-Ausdrücke) als Template-Argumente hat historische Gründe.'

Ähnlich,

$14.1/7 besagt - "Ein Nicht-Typ Template-Parameter darf nicht nicht als Gleitkomma-Parameter deklariert werden, Klasse oder ungültiger Typ. [Beispiel:

template<double d> class X; // error
template<double* pd> class Y; // OK
template<double& rd> class Z; // OK"
  1. Was ist der historische Grund, von dem im obigen Zitat im Buch die Rede ist?

  2. Betrachtet man, warum Y und Z gültig sind, aber nicht X, ist die ganze Herausforderung im Zusammenhang mit nicht-Typ-Vorlage-Parameter von fließendem Typ hat etwas mit Zeigern/Referenzen zu tun?

  3. Warum können Parameter, die nicht vom Typ der Vorlage sind, nicht vom Typ der Klasse sein?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X