c++ - Unportable code produces "no operator matches these operands" error in template instantiation -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 5 जवाब

कुछ सी ++ कोड के साथ स्पष्ट टेम्पलेट तत्काल:

  संरचना डेटा {}; टेम्पलेट & lt; int T1 & gt; संरचना संग्रह {टेम्पलेट & lt; int T2, इंट टी 3 & gt; स्थिर शून्य copyRelevantData (const डेटा और परम, डेटा और amp);}}; टेम्पलेट & lt; int T1 & gt; संरचना हेरफेर {टेम्पलेट & lt; int टी 2, इंट टी 3, इंट टी 4 & gt; स्थैतिक शून्य डस्टफ () {डेटा से, से; संग्रह के & lt; टी 1 & gt; :: copyRelevantData & LT; टी 2, टी 3 & gt; (से, से); }}; टेम्पलेट रहित मैनिपुलन & lt; 2 & gt ;: doStuff & lt; 0, 0, 0 & gt; ();  

मैं निम्नलिखित प्रकार की त्रुटि (इंटेल 13 आईसीपीसी आउटपुट) देख रहा हूं:

  vv.C (26): त्रुटि: कोई ऑपरेटर "& gt , " इन ऑपरेंड प्रकारों से मेल खाती हैं: इंट & gt; डेटा संग्रह & lt; T1 & gt; :: copyRelevantData & lt; टी 2, टी 3 & gt; (से, से); ^  

या (g ++ 4.1.2):

  vv.C: स्थैतिक सदस्य फ़ंक्शन में 'स्थिर शून्य मैनीप्यूलेशन & lt; T1 & gt; :: doStuff () ': Vv.C: 15: त्रुटि:' ऑपरेटर 'के लिए कोई मेल नहीं है; 'T3 & gt; में (से) के लिए 'vv.C: स्थिर सदस्य समारोह में' स्थिर शून्य मैनिपूलिंग & lt; T1 & gt; :: doStuff () [इंट टी 2 = 0, इंट टी 3 = 0, इंट टी 4 = 0, इंट टी 1 = 2] 'के साथ: Vv.C: 20: यहां से तत्काल वीवीएससी: 15: त्रुटि: प्रकार के अमान्य ऑपरेंसेस '& lt; अनसुलझी ओलोडलोड फ़ंक्शन प्रकार & gt;' और 'इंट' द्विआधारी 'ऑपरेटर & lt;'  

यह कोड आईबीएम एक्सएलसी कंपाइलर (वी 12) के साथ संकलित करता है। मुझे यकीन नहीं है कि टेम्प्लेट पैरामीटर सूची की तुलना में एक से अधिक के रूप में व्याख्या क्यों की जा रही है, लेकिन स्पष्टता यहां एक पोर्टेबिलिटी समस्या है।

मैं सभी कंपलर्स के साथ काम करने के लिए कोड को एडजस्ट करने का तरीका जानने में दिलचस्प हूँ ।

इसके अलावा, यह कोड काम करना चाहिए (यानी और संभवत: इंटेल और जीसीसी कंपाइलर दोनों के साथ एक बग), या यह अवैध भाषा का उपयोग है (और संभवतः यह भी इंगित करता है कि एक्सएलसी कंपाइलर को उस संकलक के बाद से एक बग है इस कोड को अनुमति देता है?)

आपको टेम्पलेट कीवर्ड जोड़ना होगा, और शायद जी ++ के एक और हाल के संस्करण का भी उपयोग करें यह नवीनतम जी ++ और क्लैंग ++ पर संकलित है:

  संग्रह & lt; T1 & gt; :: टेम्पलेट कॉपी प्रासंगिक आंकड़ा & lt; टी 2, टी 3 & gt; (से, से);  

Comments

Popular posts from this blog

c# - Highlight all words containing a letter in a richtextbox -

Editing Python Class in Shell and SQLAlchemy -

java - JavaFX WebEngine Video Playback in Linux -