Oppure

Loading
21/02/16 14:07
TheDarkJuster
Ok... credo di aver capito: in pratica per ogni campo REFLECTABLE
template<int N, class Self>
struct field_data {};


diventa l'espansione di
PAIR(x); \
template<class Self> \
struct field_data<i, Self> \
{ \
    Self & self; \
    field_data(Self & self) : self(self) {} \
    \
    typename make_const<Self, TYPEOF(x)>::type & get() \
    { \
        return self.STRIP(x); \
    }\
    typename boost::add_const<TYPEOF(x)>::type & get() const \
    { \
        return self.STRIP(x); \
    }\
    const char * name() const \
    {\
        return BOOST_PP_STRINGIZE(STRIP(x)); \
    } \
}; \


Ma è orribile e non mi permette di documentare le mie classi con doxygen. Quindi non posso usare questo metodo per la reflection..........
aaa