
Hello, I am using boost for the first time. I have the following boost.cpp file: #include "../confDBAPIpython/test1.h" #include <boost/python.hpp> #include <boost/python/suite/indexing/vector_indexing_suite.hpp> #include <boost/python/module.hpp> #include <boost/python/def.hpp> #include <boost/python/implicit.hpp> using namespace boost::python; BOOST_PYTHON_MODULE(confDBAPIpython) { // Compile check only... class_<std::vector<int> >("IntVec") .def(vector_indexing_suite<std::vector<int> >()); class_<std::vector<std::string> >("StringVec") .def(vector_indexing_suite<std::vector<std::string> >()); def("DBConnexion",PyDBConnexion); def("DBDeconnexion",PyDBDeconnexion); def("GetDeviceTypeRow",PyGetDeviceTypeRow); def("GetDeviceRow_devicename",PyGetDeviceRow_devicename); def("GetDeviceRow_deviceid",PyGetDeviceRow_deviceid); def("GetDetailedConnectivityBetweenDevices",PyGetDetailedConnectivityBet weenDevices); def("GetConnectivityBetweenDevices",PyGetConnectivityBetweenDevices); } The two last fct returns vector<std::string>. When I try to use them in python, I have the following error message: list_str=libconfDBAPIpython.GetConnectivityBetweenDevices("TFC","THOR_00 ","ECAL_L1FE06_02_00"); print list_str[0]; Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: No Python class registered for C++ class std::string I don't understand why. I thought it will be handled by the vector_indexing_suite. I have no problem when a fcuntion returns a string or a vector<int> Thanks for helping Lana
participants (1)
-
Lana Abadie