की एक सरणी के साथ त्रुटि मुझे सी ++ 11 std::array
के साथ कुछ अजीब व्यवहार मिल रहा है। जब मैं std::array<std::tuple<int, float>, 6> myTuples;
एक सदस्य चर के रूप में साथ संकलित करने के लिए प्रयास करते हैं, मैं इन त्रुटियों को मिलता है:std :: सरणी अपूर्ण प्रकार त्रुटि std :: tuple
mingw32\4.7.2\include\c++\array:-1: In instantiation of 'struct std::array<std::tuple<int, float>, 6u>':
mingw32\4.7.2\include\c++\array:77: error: 'std::array<_Tp, _Nm>::_M_instance' has incomplete type
मुझे यकीन है कि अगर यह के किसी भी कुछ भी बदल जाता है लेकिन वर्ग उस में है नहीं कर रहा हूँ एक टेम्पलेट वर्ग है एक और टेम्पलेट वर्ग से व्युत्पन्न। टेम्पलेट पैरामीटर एक unsigned int
है जो बेस क्लास में संरक्षित std::array
का आकार निर्धारित करता है, जिसे मैं व्युत्पन्न कक्षा using Base<param>::m_array;
में संदर्भित करता हूं। व्युत्पन्न वर्ग में glm::vec3/dmat4/quat
प्रकार हैं, और ओपनजीएल फिक्स्ड फंक्शन glBegin(GL_QUADS);
सामान का उपयोग करता है। मैं ओपनजीएल संदर्भ बनाने के लिए एसडीएल-1.2.15 का उपयोग कर रहा हूं। मुझे लगता है कि उनमें से अधिकांश अप्रासंगिक था, लेकिन शायद नहीं। मैं कोड पेस्ट कर सकता था, लेकिन सबकुछ एक दूसरे से जुड़ा हुआ है, इसलिए इसे केवल पूरे के रूप में संकलित किया जा सकता है (जो स्रोतों के बीच वितरित होता है लगभग एक हजार या तो रेखाएं)।
हालांकि, जब मैं this ideone example में इसी पंक्ति को शामिल करता हूं, तो इसी तरह की परिस्थितियों में, यह पूरी तरह से ठीक संकलित करता है। मैंने जांच की कि यह केवल मेरे कंपाइलर (मिनजीडब्ल्यू जी ++ संस्करण 4.7.2) को कमांड लाइन g++ -Wall -std=c++11
के साथ संकलित करके संकलित करके नहीं था, क्या किसी को पता है कि मुझे इन त्रुटियों को क्यों प्राप्त हो सकता है? std::array
असाइनमेंट (डिफ़ॉल्ट पैरामीटर के लिए array = {{a,b,c}};
का उपयोग करके) को संकलित करते समय संकलक क्रैश होने से पहले मुझे कुछ समस्याएं थीं, लेकिन इस बार इसकी एक कंपाइलर त्रुटि क्रैश नहीं हुई थी।
क्या आपने '# शामिल किया है'? –
dunc123
यदि आप '' शामिल करना भूल जाते हैं तो मैं एक समान त्रुटि उत्पन्न कर सकता हूं। असल में, g ++ 4.7 '/usr/include/c++/4.7/array:77:43: त्रुटि: 'std :: array <_Tp, _Nm> :: _ M_instance' के अपूर्ण प्रकार के –
एक [SSCCE] पोस्ट करें (http://sscce.org/)। – juanchopanza