बिंदु है जिस पर आप संदर्भ द्वारा g
पर कब्जा, यह घोषित किया गया है, इसलिए नाम उपयोग के लिए उपलब्ध है:
3.3.2/1 एक नाम के लिए घोषणा की बात अपने के तुरंत बाद है पूरा declarator (खण्ड 8) और उसके प्रारंभकर्ता
आप सीमित विधियों में वस्तुओं का उपयोग करने के पहले वे initialised कर रहे हैं अनुमति दी जाती है इससे पहले कि - मूल रूप से, कुछ भी है कि मूल्य पर निर्भर नहीं करता ठीक है:
3.8/6 किसी ऑब्जेक्ट के जीवनकाल से पहले शुरू हो गया है लेकिन ऑब्जेक्ट पर कब्जा करने के बाद आवंटित किया गया है [...] मूल वस्तु को संदर्भित करने वाला कोई भी ग्लूबल उपयोग किया जा सकता है लेकिन केवल तरीकों से सीमित है। [...] glvalue के गुणों का उपयोग जो उसके मूल्य पर निर्भर नहीं है अच्छी तरह से परिभाषित है।
तो मेरी समझ से, आप जो कर रहे हैं वह अच्छी तरह से परिभाषित है।
(हालांकि, अल्ट्रापेडेंटिक होने के नाते, मुझे नहीं लगता कि यह निर्दिष्ट किया गया है कि स्वचालित ऑब्जेक्ट के लिए संग्रहण आवंटित किया जाता है, और 8.3.2/5 कहता है कि परिभाषित किए बिना "एक वैध ऑब्जेक्ट को संदर्भित करने के लिए एक संदर्भ प्रारंभ किया जाएगा" "मान्य" है, इसलिए तर्क देने का दायरा है कि यह अच्छी तरह से परिभाषित नहीं है)।
स्रोत
2011-12-21 19:55:30
सी # में, जो संकलित नहीं होगा; आपको इसे दो बयानों में तोड़ना होगा। – SLaks
सी ++ 0x उदाहरण [यहां] (http://zamjad.wordpress.com/2011/09/22/c-recursive-lambda-functions/) इसे 2 कथन में तोड़ दें, लेकिन क्यों नहीं समझाते। – Joe
मुझे लगता है कि यह अपरिभाषित व्यवहार है। Lambdas रिकर्सन के लिए डिज़ाइन नहीं किया गया है क्योंकि यह एक अनाम कार्य है, क्या मैं सही हूँ? – Hauleth