foo
लिए Foo& foo = ...;
रूप में घोषित किया है, वहाँ पर कब्जा-दर-मूल्य lambdas के लिए और कब्जा-दर-संदर्भ अर्थ विज्ञान के बीच कोई अंतर है?क्या [foo] {...} कैप्चर और [foo] {...} कैप्चर किया गया है यदि 'foo' संदर्भ चर है?
उत्तर
हाँ, वहाँ एक अंतर है।
§5.1.2 [expr.prim.lambda] p14
एक इकाई प्रतिलिपि द्वारा कब्जा कर लिया है, तो यह परोक्ष कब्जा कर लिया है और कब्जा-डिफ़ॉल्ट
=
है या अगर यह स्पष्ट रूप से एक पर कब्जा के साथ कब्जा कर लिया है एक&
शामिल नहीं है कि। प्रतिलिपि द्वारा कब्जा कर लिया गया प्रत्येक इकाई के लिए, बंद नाम में एक अज्ञात गैरस्टिक डेटा सदस्य घोषित किया जाता है। इन सदस्यों का घोषणा आदेश अनिर्दिष्ट है। इस तरह के एक डेटा सदस्य के प्रकार इसी पर कब्जा कर लिया इकाई के प्रकार यदि इकाई एक वस्तु के लिए एक संदर्भ, या संदर्भित प्रकार अन्यथा नहीं है।
तो, यदि आप एक पहचानकर्ता को कैप्चर करते हैं जो मूल्य के संदर्भ को संदर्भित करता है, तो आपको संदर्भित ऑब्जेक्ट की प्रति प्राप्त होती है।
क्या इसका मतलब यह है कि यह आउटपुट गलत है ?: http://ideone.com/L64Ul – jrok
नहीं, यह ठीक है, क्योंकि वैश्विक चरों तक पहुंच की अनुमति है। आउटपुट 2 होना चाहिए, बशर्ते आप मुझे 0 – JohnB
@ जॉन के साथ प्रारंभ करना न भूलें: धन्यवाद, मैंने कैप्चर और उपयोग किए गए चर के बीच विसंगति को पूरी तरह से अनदेखा कर दिया। अब [अपेक्षित त्रुटि] प्राप्त हो रही है (http://liveworkspace.org/code/6f2da9b2b748758e5563fd424408b334)। इसके अलावा, वैश्विक अंतर्निर्मित प्रकार शून्य-प्रारंभिक हैं। :) – Xeo
मुझे लगता है कि आप एक आम गलत धारणा के लिए गिर गए हैं ... वास्तविक वस्तुओं के संदर्भ उपनाम हैं। प्रारंभ करने के बाद, संदर्भ का कोई भी उपयोग मूल वस्तु के उपयोग के बराबर है। यदि आप इसे मानते हैं, तो सवाल थोड़ा समझ में आता है। यदि संदर्भ है वस्तु, तो [foo](){}
के व्यवहार चाहे foo
एक वस्तु या वस्तु के लिए एक संदर्भ है की परवाह किए बिना बिल्कुल वैसा ही हो जाएगा।
@ एलोफ: मुझे नहीं लगता कि आपने जो कहा वह समझ गया। बेशक एक * प्रति * और एक * संदर्भ * पूरी तरह से अलग चीजें हैं। जो आपको समझ में नहीं आता है वह है कि * प्रारंभिकरण के बाद * संदर्भ मूल वस्तु के लिए ** ** उपनाम ** है। चाहे अंतर्निहित सूचक है या नहीं, अर्थशास्त्र जैसे हैं * मूल * ऑब्जेक्ट का उपयोग किया गया था। आपकी पूरी टिप्पणी ट्रैक बंद है। –
आह, जो अधिक समझ में आता है! क्षमा करें, मैंने आपका जवाब गलत पढ़ा है। मैं अपनी टिप्पणी हटा दूंगा ताकि लोगों को भ्रमित न किया जा सके। – Eloff
@Eloff: अब यह लोगों को भ्रमित करता है क्योंकि वे नहीं देख सकते कि डेविड क्या प्रतिक्रिया दे रहा था। ; -] – ildjarn
- 1. var foo = foo || चेतावनी (foo);
- 2. int foo = foo
- 3. "x && foo()" क्या है?
- 4. "#if Foo - 0 == 0" और "#if परिभाषित (Foo) और& Foo == 0" के बीच क्या अंतर है?
- 5. "foo"
- 6. मेरे $ Foo एटीएल समाधान में ($ Foo) पीएस प्रोजेक्ट क्या है?
- 7. इसका क्या अर्थ है? int foo = foo + 4;
- 8. PHP गति: तेज़ क्या है? अगर (जारी ($ foo)) या यदि ($ foo == true)
- 9. @synthesize foo = _foo क्या है?
- 10. jQuery में, चयनकर्ता $ ('[id = foo]') $ ('# foo') से कम कुशल है?
- 11. क्यों "foo" .toString() toString.call ("foo") के समान नहीं है?
- 12. $ ("# foo .bar") और $ ("। Bar", "#foo") के प्रदर्शन की तुलना में
- 13. कमांड प्रतिस्थापन $ (foo) bashism है?
- 14. os.environ ['foo'] कब os.getenv ('foo') से मेल नहीं खाता होगा?
- 15. foo.setVisibility (View.GONE) और parent.removeView (foo)
- 16. क्या सी ++ या सी में foo (शून्य) और foo() के बीच कोई अंतर है?
- 17. जावा में if (! Foo) और if (foo == false) के बीच प्रदर्शन अंतर क्या है, यदि कोई है?
- 18. क्यों हटाया गया फ़ाइल foo के लिए "git log - foo" काम नहीं करता है?
- 19. svn: मौजूदा dierctory <foo> के यूआरएल <foo> अपेक्षित यूआरएल <foo>
- 20. क्या "foo is none" और "foo == कोई नहीं" के बीच कोई अंतर है?
- 21. __PACKAGE __-> {foo} का क्या अर्थ है?
- 22. बेस्ट प्रैक्टिस: अगर (foo == गलत) या यदि
- 23. आर: apt-get install r-cran-foo बनाम install.packages ("foo")
- 24. सी ++ पॉलिमॉर्फिज्म ((एक्स *) वाई) -> foo() बनाम ((एक्स) * वाई) .foo()
- 25. jQuery $ .प्रत्येक (आगमन, foo) बनाम $ (आगमन) .प्रत्येक (foo)
- 26. PostgreSQL स्तंभ 'foo'
- 27. foo (& nil) foo (और "proc नहीं") से अलग तरीके से कैसे व्यवहार करता है?
- 28. @ManyToMany (mappedBy = "foo")
- 29. जब मैं/foo या/foo/पूछता हूं तो अमेज़ॅन एस 3 स्वचालित रूप से /foo/index.html क्यों नहीं देता है?
- 30. रुबी में क्यों परिभाषित नहीं किया गया है जब तक foo = true नहीं होगा? (Foo) 'असाइनमेंट करें?
आशा है कि आप स्पष्टता के लिए संपादित आपत्ति नहीं है। – Xeo