boostのmplで質問なんですが
以下のソースコードのBOOST_PP_REPEATの即値(4)を
消してsize<const_data>::type::valueをBOOST_PP_REPEATに
渡したいのですが、コンパイルエラーになってしまいます
プリプロセッサに即値以外渡せないのはなんとなくわかるのですが
そこをなんとか渡せるようにしていただきたいのです
よろしくおねがいします

using boost::mpl::list_c;
using boost::mpl::at_c;
uisng boost::mpl::size
#define MACRO(Z,N,LIST_NAME) std::cout << at_c<LIST_NAME,N>::type::value << std::endl;
typedef list_c<int,1,10,100,1000>const_data;
BOOST_PP_REPEAT( 4 , MACRO , const_data )