
21 Aug
2009
21 Aug
'09
9:58 a.m.
2009/8/21 Hicham Mouline <hicham@mouline.org>
Thanks very much. How about generating const int elts[] = { other_array[0], .... other_array[N-1] };
Basically I wished to initialize at compile time 1 const array based on another, I don't see any metaprogramming that allows this.
#include <iostream> #include <iterator> #include <boost/preprocessor.hpp> #define N 10 int main() { const int other_array[N] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; const int elts[] = { #define BOOST_PP_LOCAL_MACRO(I) BOOST_PP_COMMA_IF(I) other_array[I] #define BOOST_PP_LOCAL_LIMITS (0, N) #include BOOST_PP_LOCAL_ITERATE() }; std::copy(elts, elts + N, std::ostream_iterator<int>(std::cout, "\n")); } Roman Perepelitsa.