¿Por qué necesito operadores de comparación en el paquete de indexación vectorial de python boost?
Me gustaría exponer el código C ++ con una
std::vector<A>
a pitón. Mi
class A{};
no tiene un operador de comparación implementado. Cuando intento
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> >());
}
Me sale un error sobre los operadores de comparación. Si cambio la definición de A a
class A {
public:
bool operator==(const A& other) {return false;}
bool operator!=(const A& other) {return true;}
};
Funciona a las mil maravillas.
¿Por qué necesito implementar estos operadores de comparación? ¿Hay alguna manera de usar elvector_indexing_suite
¿sin ellas?