c++ - Modifying items of boost multi index container -
संरचना टैग Enumdef {}; Struct टैगनाम {}; Struct tagWidget {}; टेम्पलेट के & lt; वर्ग प्रकार & gt; कक्षा पैरामाटैग; टेम्पलेट के & lt; & gt; कक्षा पैरामाटैग & lt; int & gt; {सार्वजनिक: टाइप किए गए टैग टैग एएनएमएफ़एफ़ टैग; }; टेम्पलेट के & lt; & gt; वर्ग पैरामाट्स & lt; QString & gt; {सार्वजनिक: टाइप किया गया टैग टैग टैग; }; टेम्पलेट के & lt; & gt; वर्ग पैरामाटैग & lt; QWidget * & gt; {सार्वजनिक: टाइप किए गए टैग टैग विजेट; }; Typedef बढ़ावा :: multi_index :: mult_index_container & lt; पैराराइज़िस्ट्रेशनइन्टर्री, बढ़ावा :: बहु_इनडेक्स :: इंडेक्टेड_ बाय & lt; :: multi_index :: ordered_unique करें & lt को बढ़ावा देने; Boost :: multi_index :: टैग & lt; tagEnumdef & gt;, BOOST_MULTI_INDEX_CONST_MEM_FUN (पैरामाई पंजीकरण प्रविष्टि, इंट, एंम्डेफ़) & gt ;, boost :: mult_index :: ordered_unique & lt; Boost :: mult_index :: टैग & lt; tagName & gt;, BOOST_MULTI_INDEX_CONST_MEM_FUN (पैरामाई पंजीकरण प्रविष्टि, कस्टस्ट्रिंग, नाम) & gt ;, boost :: mult_index :: ordered_unique & lt; Boost :: mult_index :: टैग & lt; tagWidget & gt;, BOOST_MULTI_INDEX_CONST_MEM_FUN (पैरामाई पंजीकरण प्रविष्टि, QWidget *, विजेट) & gt; & Gt; & Gt; & Gt; ParamRegisterIndexContainer; टी टी_; // इंट, क्यूस्ट्रिंग या क्यूड विदेट * पैरामाआरजेस्टरइंडएक्सकॉन्टेनइर * कॉन्स्ट रजिस्टर_; रजिस्टर _- & gt; संशोधित करें (रजिस्टर _- & gt; प्राप्त करें & lt; पैरामाटैग & lt; T & gt; :: टैग & gt; ()। ढूँढें (टी_), ...); // C2664 त्रुटि C2664: 'bool boost :: multi_index :: detail :: order_index & lt; keyfromvalue, तुलना करें, सुपरमेटा, टैग लिस्ट, श्रेणी & gt; :: संशोधित & lt; boost :: lambda :: lambda_functor & lt; T & gt; & gt; (boost :: multi_index :: विस्तार :: bidir_node_iterator & lt; नोड & gt;, संशोधक): पैरामीटर 1 को 'boost :: mult_index :: detail :: bidir_node_iterator & lt; नोड & gt; को बढ़ावा देने के लिए: multi_index :: detail :: bidir_node_iterator & lt; नोड & gt; ' नोड के साथ = आदेशांकित_ इंडिक्स_नेट & lt; index_node_base & lt; ... & gt; & gt; नोड = ordered_index_node & LT; ordered_index_node & LT; ordered_index_node & LT; index_node_base & LT; ... & gt; & gt;
मैंने उन हिस्सों को छीन लिया है जिन्हें कोई फर्क नहीं करना चाहिए। क्या 3 आदेश दिए गए_इनएक्स_नेट का कंटेनर में परिभाषित 3 कुंजी से संबंधित हैं? मुझे मिलते समय 1 सूचक से एक इटरेटर मिलता है, लेकिन कुछ प्रकार के संयोजन की आवश्यकता है?
यह मेरी समझ है कि संशोधित ()
किसी कंटेनर पर नहीं, एक इंडेक्स पर कॉल किया जाना चाहिए। तो आप जो लिखना चाहते हैं, वह शायद अधिक पसंद है:
टाइप टाइप करेंफ़ाइननाम पैरामाटैग & lt; T & gt; :: टैग टैगटाइप; // उचित सूचकांक प्राप्त करें ParamRegisterIndexContainer :: अनुक्रमणिका & lt; TagType & gt; :: टाइप करें & amp; सूचकांक = रजिस्टर _- & gt; प्राप्त करें & lt; टैगप्रकार & gt; (); // इस सूचकांक index.modify में पाया गया मान संशोधित करें (index.find (t_), ...);
Comments
Post a Comment