2014-09-13 4 views
15

सी ++ से पहले से परिचित होने और सी ++ 11 ऑफ़र की कुछ नई सुविधाओं को आजमाने के बाद, मैंने सी # से अधिक परिचित होने का फैसला किया।क्या सी # सी ++ 11 में decltype के बराबर है?

जैसा कि अपेक्षित है, प्रोग्रामिंग सिद्धांत समान हैं, लेकिन कुछ सुविधाएं अलग-अलग हैं। मतभेद और समानताएं मैं देख रहा हूं और इसलिए मैंने यह पूछने का फैसला किया कि क्या सी # + के बराबर है सी ++ 11 में?

int x = 4; 
decltype(x) y = 16; 
+0

मुझे ऐसा नहीं लगता है। आप इसे प्रतिबिंब के माध्यम से प्रकार की जानकारी खोने के साथ कर सकते हैं, लेकिन मुझे नहीं लगता कि आप इसे टाइप किए बिना ज्ञात प्रकार को रख सकते हैं। – chris

+0

आप जानते हैं कि 'decltype' ज्यादातर 'टेम्पलेट' के लिए है, और यह उन क्षेत्रों में से एक है जहां वे दृढ़ता से भिन्न हैं, क्योंकि सी # में बहुत कमजोर सुविधाएं हैं? – Deduplicator

+0

कमजोर? नहीं। विभिन्न? ज़रूर। सी # में * जेनेरिक * है, जो सी ++ * टेम्पलेट्स * जैसा दिखता है लेकिन एक अलग तंत्र है। सुविधा हालांकि ओवरलैप सेट करता है। –

उत्तर

9

सी # में decltype करने के लिए कोई बराबर है।

शायद प्रकार निष्कर्ष decltype के सबसे नजदीक सुविधा होगी:

int x = 4; 
var y = x + 1; 

लेकिन वहाँ कोई वास्तविक वाक्य रचना विशेषता यह है कि प्रकार अन्य दी चर या अभिव्यक्ति से inferred के साथ एक storngly टाइप चर घोषित करने के लिए अनुमति होगी है।

+4

हम्म, प्रकार अनुमान 'ऑटो'/'decltype (ऑटो)' के बराबर होगा। –

+2

@ टी.सी. खैर, जांचें कि मैंने "निकटतम" कहा है ... वास्तविक उत्तर है * नहीं * –

+0

मैं सी # में स्वचालित प्रकार की अनुमान से पहले ही परिचित था। सी ++ 11 में यह सुविधा भी है, लेकिन आपको var के बजाय ऑटो का उपयोग करना होगा। –

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