VC10

2010-05-07 4 views
16

में काम कर initializer_list नहीं मैं कुलपति में इस कार्यक्रम ने लिखा है ++ 2010:VC10

class class1 
{ 
public: 
class1 (initializer_list<int> a){}; 
int foo; 
float Bar; 
}; 
void main() 
{ 
class1 c = {2,3}; 
getchar(); 
} 

लेकिन मैं इस त्रुटियों मिल जब मैं संकलन परियोजना:

त्रुटि 1 त्रुटि C2552: 'सी': गैर -aggregates प्रारंभकर्ता सूची ग के साथ आरंभ नहीं किया जा सकता है: \ Users \ pswin \ दस्तावेज \ दृश्य स्टूडियो 2010 \ परियोजनाओं \ test_C++ 0x \ test_C++ 0x \ main.cpp 27

और

2 IntelliSense: साथ प्रारंभ '{...}' प्रकार की वस्तु के लिए अनुमति नहीं है "Class1" c: \ उपयोगकर्ताओं \ pswin \ दस्तावेज \ दृश्य स्टूडियो 2010 \ परियोजना \ test_C++ 0x \ test_C++ 0x \ main.cpp 27

समस्या क्या है?

+0

ऐसा लगता है कि आपको इस सुविधा के लिए सरणी का उपयोग करने की आवश्यकता है ... "समेकित" बस वास्तव में ऐसा लगता है ... :) – Zoltan

उत्तर

34

यह समर्थित नहीं किया जाना चाहिए at all:

[...] प्रारंभकर्ता सूचियों में से C++ 0x कोर भाषा सुविधा और संबद्ध स्टैंडर्ड लाइब्रेरी परिवर्तन VC10 में लागू नहीं किया गया।

त्रुटि संदेश पूर्व सी ++ कुल प्रारंभ की 0x सुविधा, जो घुंघराले ब्रेसिज़ का उपयोग करके कुछ उपयोगकर्ता-निर्धारित प्रकार के प्रारंभ की अनुमति देता है को संदर्भित करता है:

struct pair { int first; char second; }; 
pair p = { 0, 'c' }; 

समुच्चय में परिभाषित कर रहे हैं §8.5.1:

एक कुल एक सरणी या एक वर्ग (खंड 9) कोई उपयोगकर्ता के घोषित कंस्ट्रक्टर्स साथ (12.1), कोई निजी या संरक्षित गैर स्थिर डेटा सदस्यों (खंड 11) है, कोई आधार सी lasses (खंड 10), और कोई वर्चुअल फ़ंक्शन (10.3)।

जब कुल मिलाकर प्रारंभ किया जाता है तो प्रारंभकर्ता में प्रारंभिककर्ता-क्लॉज शामिल हो सकता है जिसमें समग्र के सदस्यों के लिए प्रारंभिककर्ता-खंडों की एक ब्रेस-संलग्न, अल्पविराम से अलग सूची शामिल होती है, जो बढ़ती सदस्यता या सदस्य आदेश में लिखी जाती है। यदि कुल में उप-योग होता है, तो यह नियम उप-समूह के सदस्यों के लिए पुनरावर्ती रूप से लागू होता है।

संबंधित मुद्दे