我们有类似的功能
void myf(const boost::python::list& l) {...}
有没有办法接受任何Python可迭代,或者不那么笼统地接受任何集合?
有 boost::python::stl_input_iterator,所以你可以做类似的事情
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 >());
}