मुझे यह समझ नहीं है:क्या 'वैकल्पिक व्याकरण' करता है [[गुणों के अलावा दिखाई देता है?
(7.6.1) दो लगातार बाईं वर्ग कोष्ठक टोकन दिखाई जाएगी केवल जब एक विशेषता-विशिष्ट एर शुरू। [नोट: यदि लगातार दो बाएं स्क्वायर ब्रैकेट दिखाई देते हैं जहां एक विशेषता-विशिष्टता की अनुमति नहीं है, प्रोग्राम बीमार है भले ही ब्रैकेट वैकल्पिक व्याकरण उत्पादन से मेल खाते हैं। अंत टिप्पणी] [उदाहरण: (थोड़ा स्रोत से संशोधित)
// ...
void f() {
int x = 42, y[5];
// ...
y[[] { return 2; }()] = 2; // error even though attributes are not allowed
// in this context.
}
क्या वैकल्पिक व्याकरण [[
के लिए इस्तेमाल किया जा सकता है? उदाहरण मौजूद होंगे यदि विशेषता मौजूद नहीं है (और उदाहरण क्या करता है)?
मुझे लगता है यह '' >> असफलता की तरह खत्म हो सकता है: तकनीकी रूप से एक विशिष्ट तरीके से पार्स किया जा करने के लिए आवश्यक है, लेकिन समय के साथ उदारता पैदा होगा और मानक बाधा आराम कर सकते हैं। उस ने कहा, बड़ी संख्या में स्थितियों के गुणों का उपयोग किया जा सकता है, यह कंप्यूटर्स नौकरी को हमेशा [[''एक विशेषता-विनिर्देशक के रूप में पार्स करने के लिए आसान बनाता है (जो बदले में सुविधा को आसान बनाता है)। – GManNickG
@GMan: और ऐसा लगता है कि '[['गुणों के बाहर टोकन प्राप्त करने के लिए लैम्बडास के माध्यम से कोई दूसरा रास्ता नहीं है। – Xeo
@Xeo: मैं बस Ctrl + C++ 0x के व्याकरण के माध्यम से F'd और यह सच लगता है। मैं विशेषताओं में विशेषज्ञ नहीं हूं, और मुझे नहीं लगता कि यह मान्य होगा, लेकिन यहां एक विधि है जिसे लैम्ब्डा की आवश्यकता नहीं होगी: 'स्ट्रक्चर {शून्य ऑपरेटर [] (शून्य *) {}} x; एक्स [[[ब्लाह]] नया int]; '। मुझे नहीं लगता कि आप इस तरह की एक विशेषता लागू कर सकते हैं, लेकिन यह सामान्य विचार है। – GManNickG