나는 파이썬에부스트 파이썬 벡터 인덱싱 슈트에서 비교 연산자가 필요한 이유는 무엇입니까?
std::vector<A>
와 C++ 코드를 노출하고 싶습니다. 내
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
을 사용할 방법이 있습니까?
답변 해 주셔서 감사합니다. 이 코드는 부스트 샌드 박스에서만 사용할 수 있습니까? 가장 쉬운 방법은 무엇입니까? [샌드 박스] (https://svn.boost.org/svn/boost/sandbox/python_indexing_v2/)에서 파일을 교환 한 후 수동으로 부스트를 다운로드하고 컴파일해야합니까? – Hans
이 기능은 아직 Boost.Python의 출시 버전에 포함되어 있지 않으므로 사용하려면 샌드 박스에서 최신 버전을 다운로드하고 다시 빌드해야합니다. 그러나, 나는이 버전의 상태가 무엇인지 (아직 리뷰되지 않음) 모르므로 비교 연산자의 더미 구현을 고수하는 것이 가장 좋습니다. –