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 ?
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..
Partager