खोज…
परिचय
एक प्रकार, चर या फ़ंक्शन के प्रकार को प्राप्त करने के लिए कीवर्ड 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