21/02/16 14:07
TheDarkJuster
Ok... credo di aver capito: in pratica per ogni campo REFLECTABLE
diventa l'espansione di
Ma è orribile e non mi permette di documentare le mie classi con doxygen. Quindi non posso usare questo metodo per la reflection..........
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