template<size_t n>
-
Hallo,
Meine Frage betrifft eigentlich nur den Stil.
Ist es angebracht, bei zum Beispiel einer Template-Klasse nur einen konstanten
Wert zu übergeben oder ist es ein muss, auch immer einen Datentyp mitzuliefern.
In allen Tutorials habe ich dazu nichts gefunden.
-
Man verwendet eine Template Klasse ja gerade deshalb weil man keinen Datentyp angeben will
-
Stil?
Also das ist doch sehr elegant!evtl. const size_t und mit davorschreibsel t_ für template, wie m_ für member, naja jedem das seine, aber ich würde es machen.
also
template <const size_t t_nVarName> class XYZ { ... };
MfG
DDR-RAM
-
BasicMan01 schrieb:
Hallo,
Meine Frage betrifft eigentlich nur den Stil.
Ist es angebracht, bei zum Beispiel einer Template-Klasse nur einen konstanten
Wert zu übergeben oder ist es ein muss, auch immer einen Datentyp mitzuliefern.
In allen Tutorials habe ich dazu nichts gefunden.Nein es ist kein muss und in den heutigen generischen libs auch gang und gäbe.
Alles was du zur compiletime weisst und was dort feststeht kannst du auch dort festlegen. Zum beispiel die greosse fuer eine array-klasse oder aehnliches.Ein anderes anwendungsgebiet ist die berechnung von werten zur compiletime, da wird das auch verwendet.
Also kein schlechter stil.
-
DDR-RAM schrieb:
Stil?
Also das ist doch sehr elegant!evtl. const size_t und mit davorschreibsel t_ für template, wie m_ für member, naja jedem das seine, aber ich würde es machen.
also
template <const size_t t_nVarName> class XYZ { ... };
Was bitte bringt dir das const? Außer mehr Schreibarbeit und Verwirrung bei denjenigen die sich mit non-type Parametern auskennen.
So oder so kann ein gültiges Argument immer nur eine *compileziet* Konstante sein.Ist es angebracht, bei zum Beispiel einer Template-Klasse nur einen konstanten
Wert zu übergeben oder ist es ein muss, auch immer einen Datentyp mitzuliefernDie Frage was angebracht ist, hängt von der Situation ab in der du dich befindest.
-
HumeSikkins schrieb:
Was bitte bringt dir das const? Außer mehr Schreibarbeit und Verwirrung bei denjenigen die sich mit non-type Parametern auskennen.
So oder so kann ein gültiges Argument immer nur eine *compileziet* Konstante sein.Jaja, hast ja recht, hatte ich mir gerade ausgedacht und meinte das wäre ne Tolle Idee
Schaden tut es trotzdem nicht.
Aber das mit dem t_, dazu stehe ichMfG
DDR-RAM
-
BasicMan01 schrieb:
oder ist es ein muss, auch immer einen Datentyp mitzuliefern.
Nein. Wenn du lediglich auf einen non-type Parameter angewiesen bist, dann brauchst du auch keinen Typ Parameter zu spezifizieren.