我想公开 C++ 代码
std::vector<A>
到蟒蛇。我的
class A{};
没有实现比较运算符。当我尝试
BOOST_PYTHON_MODULE(libmyvec)
{
using namespace boost::python;
class_<A>("A");
class_<std::vector<A> >("Avec")
.def(boost::python::vector_indexing_suite<std::vector<A> >());
}
我收到有关比较运算符的错误。如果我将 A 的定义更改为
class A {
public:
bool operator==(const A& other) {return false;}
bool operator!=(const A& other) {return true;}
};
它就像一个魅力。
为什么我需要实现这些比较运算符?vector_indexing_suite
没有它们有什么方法可以使用吗?