किसी कारण से, जब मैं अपने प्रोग्राम में "हस्ताक्षरित int" के बजाय एक वैरिएबल को "uint" के रूप में परिभाषित करता हूं, तो यह त्रुटियां होती है। यह अजीब लगता है, क्योंकि uint के रूप में typedef'd है:typedef'd uint का उपयोग त्रुटि का कारण बनता है, जबकि "हस्ताक्षरित int" नहीं है ...?
typedef unsigned int uint;
... इसलिए मुझे लगता है कि मैं दो दूसरे के स्थान पर इस्तेमाल कर सकते हैं लगता होगा। अधिक सटीक होने के लिए, मैं एक ऐसे फ़ंक्शन का परिणाम असाइन कर रहा हूं जो एक यूंट वैरिएबल में "हस्ताक्षरित int" लौटाता है, फिर वेक्टर आकार बदलने वाले कॉल में उस यूंट का उपयोग करके ... जिस बिंदु पर यह त्रुटियां होती है। यानी, मेरे कोड इस तरह दिखता है:
unsigned int getUInt()
{
return 3;
}
int main(void) {
vector<vector<float> > vectVect(100000);
for(uint i = 0; i < vectVect.size(); ++i)
{
vector<float>& myVect = vectVect[i];
uint myUnsignedInt = getUInt();
myVect.resize(myUnsignedInt);
}
cout << "finished" << endl;
}
... और लाइन त्रुटियों इसे myVect.resize रेखा है।
जाहिर है, मेरे पास पहले से ही एक समाधान है, लेकिन मैं समझना चाहता हूं कि यह क्यों हो रहा है, क्योंकि मैं बहुत परेशान हूं। क्या किसी के भी पास कोई सुझाव है?
पीएस - अगर किसी को लगता है कि इससे कोई फर्क नहीं पड़ता है, तो मैं फेडोरा 15 पर जीसीसी v4.1.2 का उपयोग कर रहा हूं ... और इसमें शामिल फ़ाइल जो यूंट को परिभाषित करती है /usr/include/sys/types.h है।
जब भी आपको कोई त्रुटि मिलती है, तो आपको हमेशा अपने प्रश्न में प्रश्न में त्रुटि शामिल करने की आवश्यकता होती है। –
आपको वास्तविक कोड दिखाना चाहिए जो असफल रहा है। विशेष रूप से '# शामिल' एस, 'उपयोग' घोषणाओं, आदि। और जीसीसी 4.6 शायद 4.1 से अधिक मानक अनुरूप है। –
और [जैसा कि आप यहां देख सकते हैं] (http://ideone.com/Y1DRP), त्रुटि आपके द्वारा प्रदान किए गए उदाहरण में नहीं होती है (कम से कम जीसीसी के उस संस्करण के साथ)। –