title: Copy an mpl::vector_c to a static array at compile time
body: <p>With C++11 i have the something like</p>
  
  <pre><code>#include &lt;boost/mpl/vector_c.hpp&gt;
  #include &lt;boost/mpl/size.hpp&gt;
  
  #include &lt;boost/array.hpp&gt;
  
  #include &lt;iostream&gt;
  
  namespace mpl = boost::mpl;
  
  template&lt;std::size_t ... Args&gt;
  struct Test
  {
              typedef mpl::vector_c&lt;std::size_t, Args ...&gt; values_type;
  
              static const boost::array&lt;std::size_t, sizeof...(Args)&gt; values;
  };
  
  
  int main (int argc, char** argv)
  {
              Test&lt;3,2,5,6,7&gt; test;
              return 0;
  }
  </code></pre>
  
  <p>I would like to initialize the boost::array contents with the values 'contained' in the mpl::vector_c. This initialization should be performed at compile time. I have seen on SO some solutions using the preprocessor, but I have no idea on how to apply them to the variadic template case.</p>
  
  <p><strong>Notice that in the above sample code, the elements of the mpl::vector_c are the same as Test's template parameters. In the actual  code it is not the case</strong>, instead <code>values_type</code> has length == number of template arguments, but the actual values result from the application of a sequence of mpl algorithms. Therefore, do not assume that the argument are the same.</p>
  
  <p>Hope the question is clear, thanks!</p>