Зачем мне нужны операторы сравнения в пакете векторной индексации Boost Python?
Я хотел бы показать код 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
без них