1

Les templates permettent de précalculer des valeurs lors de la compilation. Exemple, on peut faire:
int a = Factorial<7>::value;et ça sera compilé comme
int a = 5040;

Est-ce que c'est possible de faire un template (qui utilise le préprocesseur si besoin est) qui transforme une string?

Exemple:
char *s = Majuscules<je suis en minuscules>::values;devienderais:
char *s = "JE SUIS EN MINUSCULES";
?

2

a priori tu ne peux pas, cf le standard section 14.3.2 :
A template-argument for a non-type, non-template template-parameter shall be one of:
[ ... ]
[ Note: A string literal (2.13.4) does not satisfy the requirements of any of these categories and thus is not an acceptable template-argument


il y a une discussion ici sur les variadic templates (qui permettraient de faire ce que tu cherches en décomposant la chaine en suite de caractères) mais j'ai eu la flemme de lire donc je ne sais pas si c'est juste de la recherche ou s'il y a des implémentations concrètes quelque part : http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/9b0edd169ba2ce3c
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3