खोज…


परिचय

एक प्रकार, चर या फ़ंक्शन के प्रकार को प्राप्त करने के लिए कीवर्ड decltype का उपयोग किया जा सकता है।

मूल उदाहरण

यह उदाहरण बताता है कि इस कीवर्ड का उपयोग कैसे किया जा सकता है।

int a = 10;

// Assume that type of variable 'a' is not known here, or it may
// be changed by programmer (from int to long long, for example).
// Hence we declare another variable, 'b' of the same type using 
// decltype keyword.
decltype(a) b; // 'decltype(a)' evaluates to 'int'

यदि, उदाहरण के लिए, कोई व्यक्ति बदलता है, तो 'a' का प्रकार:

float a=99.0f;

तब चर b का प्रकार अब स्वचालित रूप से float बन जाता है।

एक और उदाहरण

मान लीजिए कि हमारे पास वेक्टर हैं:

std::vector<int> intVector;

और हम इस वेक्टर के लिए एक पुनरावृत्त घोषित करना चाहते हैं। एक स्पष्ट विचार auto का उपयोग करना है। हालाँकि, यह सिर्फ एक इटैलर वैरिएबल घोषित करने की आवश्यकता हो सकती है (और इसे किसी भी चीज़ को असाइन करने के लिए नहीं)। हम करेंगे:

vector<int>::iterator iter;

हालाँकि, decltype साथ यह आसान और कम त्रुटि वाला हो जाता है (यदि intVector प्रकार बदलता है)।

decltype(intVector)::iterator iter;

वैकल्पिक रूप से:

decltype(intVector.begin()) iter;

दूसरे उदाहरण में, वास्तविक प्रकार का निर्धारण करने के लिए वापसी प्रकार की begin का उपयोग किया जाता है, जो कि vector<int>::iterator

यदि हमें एक const_iterator की आवश्यकता है, तो हमें सिर्फ cbegin का उपयोग करने की आवश्यकता है:

decltype(intVector.cbegin()) iter; // vector<int>::const_iterator


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow