Skip to content

Instantly share code, notes, and snippets.

@geoffreygarrett
Forked from marcinwol/example.cpp
Created June 10, 2019 12:24
Show Gist options
  • Save geoffreygarrett/5733db92c432633302e79bab04dd84ef to your computer and use it in GitHub Desktop.
Save geoffreygarrett/5733db92c432633302e79bab04dd84ef to your computer and use it in GitHub Desktop.
Boost python vector to py list and py list to vector
#include <iostream>
#include <vector>
#include <memory>
#include "boost/shared_ptr.hpp"
#include "boost/python.hpp"
#include "boost/python/stl_iterator.hpp"
using namespace std;
template<typename T>
inline
std::vector< T > py_list_to_std_vector( const boost::python::object& iterable )
{
return std::vector< T >( boost::python::stl_input_iterator< T >( iterable ),
boost::python::stl_input_iterator< T >( ) );
}
template <class T>
inline
boost::python::list std_vector_to_py_list(std::vector<T> vector) {
typename std::vector<T>::iterator iter;
boost::python::list list;
for (iter = vector.begin(); iter != vector.end(); ++iter) {
list.append(*iter);
}
return list;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment