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.