मैं एकमुझे बूस्ट पायथन वेक्टर इंडेक्सिंग सूट में तुलना ऑपरेटरों की आवश्यकता क्यों है?
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> >());
}
मुझे तुलना ऑपरेटर के बारे में त्रुटि मिलती है। यदि मैं ए से
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
जाहिर है, यह सुविधा बूस्ट.पथन के रिलीज़ संस्करण में अभी तक शामिल नहीं है, इसलिए यदि आप इसका उपयोग करना चाहते हैं, तो आपको सैंडबॉक्स से नवीनतम संस्करण डाउनलोड करना होगा और इसे पुनर्निर्माण करना होगा। हालांकि, मुझे नहीं पता कि इस संस्करण की स्थिति क्या है (इसकी अभी तक समीक्षा नहीं की गई है), इसलिए आपकी सर्वश्रेष्ठ शर्त शायद तुलना ऑपरेटरों के डमी कार्यान्वयन के साथ रहना है। –