Por que eu preciso de operadores de comparação no conjunto de indexação python vector boost?

Eu gostaria de expor o código C ++ com um

std::vector<A>

para python. Minhas

class A{};

não tem um operador de comparação implementado. Quando eu tento

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> >());
}

Eu recebo um erro sobre os operadores de comparação. Se eu mudar a definição de A para

class A {
public:
  bool operator==(const A& other) {return false;}
  bool operator!=(const A& other) {return true;}
};

Ele funciona como um encanto.

Por que preciso implementar esses operadores de comparação? Existe alguma maneira de usar ovector_indexing_suite sem eles?

questionAnswers(1)

yourAnswerToTheQuestion