如何声明一个可以接受任何Python可迭代的C++函数?

问题描述 投票:0回答:1

我们有类似的功能

void myf(const boost::python::list& l) {...}

有没有办法接受任何Python可迭代,或者不那么笼统地接受任何集合?

boost-python
1个回答
0
投票

有 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 >());
}
© www.soinside.com 2019 - 2024. All rights reserved.