J'écris une application wiht boost.python bibliothèque. Je veux passer la fonction en python qui retourne lorsque j'appelle cette fonction de Python, je reçois: p> Quoi que j'ai manqué? P > p> std :: vecteur code>. J'ai un peu de problèmes:
3 Réponses :
Vous devez écrire un convertisseur comme celui-ci:
BOOST_PYTHON_MODULE(MyModule) { boost::python::to_python_converter<std::vector<std::string, std::allocator<std::string> >, VecToList<std::string> >(); boost::python::def("getListValue", getListValue); }
BTW, pourquoi avez-vous écrit classe code> avant
std :: allocator code>?
C'est une question peu ancienne, mais j'ai constaté que si vous avez explicitement besoin de retourner par valeur, comme: plutôt que p> Python fait la conversion pour vous (j'utilise Python 2.7 au moment de la rédaction de cette réponse) et il n'est pas nécessaire de déclarer / définir le convertisseur. P> @tryskele P > p>
J'utilise les fonctions d'utilité suivantes pour convertir / en conteneurs STL. La fonction de somme triviale illustre comment elles sont utilisées. J'espère que vous pouvez l'utiliser.
C'est ce dont j'avais besoin. Certains comme moi pourraient avoir besoin de se mettre -std = c ++ 11 Stackoverflow.com/Questtions/23261320/...