मैंने अभी जीसीसी 4.6.0 संकलित किया है, और मैं लूप के लिए श्रेणी-आधारित के साथ शुरू होने वाली नई सुविधाओं को आजमाने की कोशिश करता हूं।
पहला लूप जिसे मैं बदलना चाहता था वह पॉइंटर्स के std :: वेक्टर पर पुनरावृत्त कर रहा था। मैंने कोड को नए सिंटैक्स का उपयोग करने के लिए बदल दिया, लेकिन यह संकलित नहीं हुआ।सी ++ 11 रेंज-पॉइंटर्स के वेक्टर पर आधारित
मैंने लूप के लिए एक और विकल्प बदलने की कोशिश की है, जो स्ट्रक्ड के वेक्टर के वेक्टर पर था, और यह संकलित और पूरी तरह से भाग गया।
यहाँ आप मेरी समस्या को दिखाने के लिए एक छोटी परीक्षण कोड है: जब मैं (छ ++ को पैरामीटर के रूप हाँ, मैं दे -std = C++ 0x) यह संकलित करने के लिए कोशिश
#include <vector>
#include <iostream>
int main()
{
std::vector<int> values;
values.push_back(2);
values.push_back(5);
values.push_back(8);
values.push_back(13);
values.push_back(17);
for (int &n : values)
{
std::cout << n << "\n";
}
std::vector< int* > pointers;
pointers.push_back(new int(2));
pointers.push_back(new int(5));
pointers.push_back(new int(8));
pointers.push_back(new int(13));
pointers.push_back(new int(17));
for ((int*) &p : values)
{
std::cout << (*p) << "\n";
}
for(unsigned int i = 0; i < pointers.size(); ++i)
{
delete pointers[i];
}
return 0;
}
, यह इस त्रुटि के साथ मर जाता है:
main.cpp|27|error: found ‘:’ in nested-name-specifier, expected ‘::’
यदि मैं 27-30 लाइनों पर लाइनों पर टिप्पणी करता हूं, तो यह ठीक है।
मैं क्या गलत कर रहा हूं? क्या संकेतक संदर्भ वाक्यविन्यास सही नहीं है?
या वहां निहित प्रकारों की एक सीमा है जहां लूप के लिए श्रेणी-आधारित उपयोग किया जा सकता है?
किसी भी मदद के लिए धन्यवाद!
Proba चाहिए bly को SO –
@Doug में ले जाया जा सकता है: सहमत ... और यह भी मदद करेगा यदि प्रश्न में एक छोटा यूआरएल होने के बजाय निश्चित रूप से स्रोत कोड शामिल था। – jprete