2003 - ja, - Vandervoorde und Josuttis schrieben dies in ihrem Buch "C++ Vorlagen" (S. 40).:Warum ist double als Template-Parameter vom Typ nicht zulässig?
Nicht in der Lage Gleitpunktliterale (und einfache Konstante variabel zu verwenden Punktausdrücke) als Vorlagenargumente hat historische Gründe. Da es keine schwerwiegenden technischen Probleme gibt, kann dies in zukünftigen Versionen von C++ unterstützt werden.
Aber dies immer noch nicht funktioniert, auch unter C++ 11:
template<double D> //error
void foo() {}
Warum wurde dies nicht hinzugefügt?
Da Gleitkommazahlen Gleichheit ein rutschig Ich bin mir nicht sicher, wie sie sagen können: "Es gibt keine ernsthaften technischen Herausforderungen." Ich denke eher, das wäre voller Gefahren –
@ ErnestFriedman-Hill: Das scheint wie die Grundlage einer Antwort für mich. –
Wir beschäftigen uns jedoch regelmäßig mit Gleichstellungsproblemen im Laufzeitcode. Die gleichen Einschränkungen würden für ihre Verwendung in Vorlagen gelten ... Ich sehe keinen guten Grund, sie nur zur Laufzeit zu behalten. –