Вот надумал себе задачку..
есть некий фаил cpp в нем надо задекларировать такие вот макросы.
OBJECT_CLASS
OBJECT_BASE
но хочеться что бы интерфейс был вот такой..
OBJECT_IMPLEMENT(CObjectA,CObjectV)
теперь в этом Cpp мы имеем два макроса
OBJECT_CLASS = CObjectA
OBJECT_BASE = CObjectV
вот мое некрасивое решение..
Cpp
# define OBJECT_IMPLEMENT ( 2, (0,1))
# include "Declare.h"
# include <stdio.h>
void main()
{
printf("%d,%d",OBJECT_CLASS,OBJECT_BASE);
}
Declare.h
# include "boost/preprocessor/array/elem.hpp"
# define OBJECT_CLASS BOOST_PP_ARRAY_ELEM(0, OBJECT_IMPLEMENT)
# define OBJECT_BASE BOOST_PP_ARRAY_ELEM(1, OBJECT_IMPLEMENT)
Хочеться покрасивше ;(