Мне нужно сохранить список членов класса, который будет позже представлен Python.
Я бы хотел перейти от:
struct Toto {
int one;
double two;
};
BOOST_PYTHON_MODULE(PythonExport)
{
using namespace boost::python;
class_<Toto>("Toto")
.def_read("one", &Toto::one)
.def_read("groot", &Toto::two);
}
К:
BOOST_PYTHON_MODULE(PythonExport)
{
using namespace boost::python;
std::map<std::string, ???> fieldList;
fieldList.push_back("one", &Toto::one);
fieldList.push_back("two", &Toto::two);
RegisterFields(class_<Toto>("Toto"), fieldList);
}
template <class T>
void RegisterFields(class_<T> aClass, std::map<std::string, ...> fieldList) {
for(fields : fieldList) {
aClass.def_read(fieldList.first, fieldList.second);
}
}
Мои единственные ограничения - его нужно хранить в контейнере (карта),При необходимости его можно сохранить в шаблонном классе под интерфейсом, но я бы хотел этого избежать (выступления)