Il te reste toujours constexpr, ou tu ne peux pas non plus faire avec c++0x ?
Il te reste toujours constexpr, ou tu ne peux pas non plus faire avec c++0x ?
The mark of the immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one.
--Wilhelm Stekel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #define ENUM_mamamia\ (tata)\ (toto)\ (tutu)\ struct mamamia { #define DEFINE_mamamiaEnum(unused_1,unused_2,e) BOOST_PP_CAT(c_,e), enum label_enum { BOOST_PP_SEQ_FOR_EACH(DEFINE_mamamiaEnum,~,ENUM_mamamia) c_END }; #undef DEFINE_mamamiaEnum static char const *label[c_END]; }; #define DEFINE_mamamiaStr(unused_1,unused_2,e) BOOST_PP_STRINGIZE(e), char const *mamamia::label[c_END]= { BOOST_PP_SEQ_FOR_EACH(DEFINE_PosStr,~,ENUM_mamamia) }; #undef DEFINE_mamamiaStr
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 std::cout << mamamia::label[mamamia::c_tata] << std:endl; std::cout << mamamia::label[mamamia::c_toto] << std:endl; std::cout << mamamia::label[mamamia::c_tutu] << std:endl;
Forcément obligé d'utiliser massivement le prépocesseur (et donc boost.pp), peut pas hardcoder tout ça :p. Mais je reste sceptique comme lavock..
"Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager