Angenommen, ich habe die Struktur:Warum müssen Sie eine externe Bindung für Verweise auf Nicht-Typ-Vorlage Argumente
template<const float& myFloat>
struct Thing{ };
Später es zu erklären, ich, dies zu tun haben:
extern constexpr float value = 12.0f;
Thing<value> MyThing;
Warum tut dies brauchen das extern
Schlüsselwort. Ich meine, es sollte egal sein, ob der Float extern
ist oder nicht (sollte es?)
Können Sie ein [MCVE] zeigen, wo 'extern' tatsächlich benötigt wird? –
@ πάνταῥεῖ Mit dem Code, den ich gepostet habe, beschwert sich mein Compiler, wenn es nicht 'extern' ist:' 'value' ist kein gültiges Template-Argument für den Typ 'const float &', da das Objekt 'value' keine externe Verknüpfung hat '(Ich benutze 'gcc') – DarthRubik
GCC muss noch auf die C++ 11 Regeln in diesem Bereich aktualisiert werden. –