J'ai remarqué que certaines de mes fonctions dans une classe n'accèdent en fait pas à l'objet, donc je les ai rendues static
. Ensuite, le compilateur m'a dit que toutes les variables auxquelles elles accèdent doivent également être statiques - assez compréhensible jusqu'ici. J'ai un tas de variables de type string telles que
chaîne RE_ANY = "([^\\n]*)";
chaîne RE_ANY_RELUCTANT = "([^\\n]*?)";
et ainsi de suite dans la classe. Je les ai alors toutes rendues static const
car elles ne changent jamais. Cependant, mon programme ne se compile que si je les sors de la classe: sinon, MSVC++2010 se plaint "Seules des variables intégrales constantes statiques peuvent être initialisées à l'intérieur d'une classe".
Eh bien, c'est malheureux. Y a-t-il une solution de contournement? J'aimerais les laisser à l'intérieur de la classe à laquelle elles appartiennent.