template<int I, char* H, int N> warum geht das nicht?
-
Hallo,
ich weiss zwar grad nicht ob der beitrag nicht in ein compiler forum gehört, aber es ist eigentlich eher dem allgemeinen c++ zugeordnet.
also wenn ich eine tmpl-klasse so verwenden wollen würde
template<int I, char* H, int N>class Feld ...const char* test = {"bla bla bla"} ; typedef Feld< 3, test, -1> SpezFeld ;bekomme ich diese fehlermeldung
c:\projekte\test.h(196) : error C2975: 'Feld' : Ungueltiges Vorlagenargument für 'H', konstanter Ausdruck erwartetkann mich mal wer aufklären

der code lief urspünglich mal unter borland und soll jetzt auf visual studio portiert werden ... naja mal gucken ..
-
test am besten mal ersetzten durch "test" ?
-
ne das geht auch nicht
error C2964: Ungueltiger Ausdruck als Vorlagenparameter
ich denke mal eher, dass VS6 wohl nicht mit einem char* beim template umgehen kann, da wie die fehlermeldung sagt, es sich hierbei um keinen konstanten wert handelt - kann ja relativ lang sein.
-
hmm seltsamerweise funktioniert es so
char test[128] = {"bla bla bla"} ;
-
test ist nicht konstant