Boost logo

Boost Users :

Subject: Re: [Boost-users] boost.pp : generate a const size_t array initializer
From: Roman Perepelitsa (roman.perepelitsa_at_[hidden])
Date: 2009-08-21 05:58:20


2009/8/21 Hicham Mouline <hicham_at_[hidden]>

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



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net