Visual c++ 在VisualStudio9下使用boost::python生成元组
尝试构建以下简单示例Visual c++ 在VisualStudio9下使用boost::python生成元组,visual-c++,boost-python,Visual C++,Boost Python,尝试构建以下简单示例 #include <boost/python.hpp> using namespace boost::python; tuple head_and_tail(object sequence) { return make_tuple(sequence[0],sequence[-1]); } #包括 使用名称空间boost::python; 元组头和尾(对象序列) { 返回make_元组(序列[0],序列[-1]); } 如果可用,我会在VisualS
#include <boost/python.hpp>
using namespace boost::python;
tuple head_and_tail(object sequence)
{
return make_tuple(sequence[0],sequence[-1]);
}
#包括
使用名称空间boost::python;
元组头和尾(对象序列)
{
返回make_元组(序列[0],序列[-1]);
}
如果可用,我会在VisualStudio9下出现此编译错误
error C2668: 'boost::python::make_tuple' : ambiguous call to overloaded function
1> C:\Program Files\boost_1_42_0\boost/python/detail/make_tuple.hpp(22): could be 'boost::python::tuple boost::python::make_tuple<boost::python::api::object_item,boost::python::api::object_item>(const A0 &,const A1 &)'
1> with
1> [
1> A0=boost::python::api::object_item,
1> A1=boost::python::api::object_item
1> ]
1> C:\Program Files\boost_1_42_0\boost/tuple/detail/tuple_basic.hpp(802): or 'boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> boost::tuples::make_tuple<boost::python::api::object_item,boost::python::api::object_item>(const T0 &,const T1 &)' [found using argument-dependent lookup]
1> with
1> [
1> T0=boost::python::api::proxy<boost::python::api::item_policies>,
1> T1=boost::python::api::proxy<boost::python::api::item_policies>,
1> T2=boost::tuples::null_type,
1> T3=boost::tuples::null_type,
1> T4=boost::tuples::null_type,
1> T5=boost::tuples::null_type,
1> T6=boost::tuples::null_type,
1> T7=boost::tuples::null_type,
1> T8=boost::tuples::null_type,
1> T9=boost::tuples::null_type
1> ]
错误C2668:'boost::python::make_tuple':对重载函数的调用不明确
1> C:\ProgramFiles\boost\u 1\u 42\u 0\boost/python/detail/make\u tuple.hpp(22):可以是“boost::python::tuple boost::python::make\u tuple(const A0&,const A1&)”
1> 与
1> [
1> A0=boost::python::api::object\u项,
1> A1=boost::python::api::object\u项
1> ]
1> C:\ProgramFiles\boost\u 1\u 42\u 0\boost/tuple/detail/tuple\u basic.hpp(802):或“boost::tuple::tuple::tuple boost::tuples::make_tuple(const T0&,const T1&)”[使用参数相关查找找到]
1> 与
1> [
1> T0=boost::python::api::proxy,
1> T1=boost::python::api::proxy,
1> T2=boost::tuples::null\u类型,
1> T3=boost::tuples::null\u类型,
1> T4=boost::tuples::null\u类型,
1> T5=boost::tuples::null_类型,
1> T6=boost::tuples::null\u类型,
1> T7=boost::tuples::null\u类型,
1> T8=boost::tuples::null\u类型,
1> T9=boost::tuples::null\u类型
1> ]
这是boost::python中的错误,还是我做错了什么?如何编译上述程序?使用完整名称空间,修复了以下问题:
#include <boost/python.hpp>
using namespace boost::python;
tuple head_and_tail(object sequence)
{
return boost::python::make_tuple(sequence[0],sequence[-1]);
}
#包括
使用名称空间boost::python;
元组头和尾(对象序列)
{
返回boost::python::make_tuple(序列[0],序列[-1]);
}