C++ Academy · पाठ

प्रकारों में रूपांतरण

remove_const, decay और अन्य

पाठ 2, कुल 4 में से13 चरण

प्रकारों में रूपांतरण, CoddyKit पर C++ Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह C++ Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्रकार रूपांतरण

पूछताछ के अलावा, <type_traits> पुराने प्रकारों से नए प्रकार बना सकता है। ये लक्षण एक सदस्य प्रकार ::type उपलब्ध कराते हैं, जिसका C++14 और उसके बाद _t संक्षिप्त रूप है।

remove_const

std::remove_const_t<const int> से int प्राप्त होता है। यह तब उपयोगी है जब आपको किसी प्रकार का परिवर्तनीय रूप चाहिए।

#include <iostream>
#include <type_traits>

int main() {
    using T = std::remove_const_t<const int>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

remove_reference

std::remove_reference_t<int&> से int मिलता है। यह परिपूर्ण फ़ॉरवर्डिंग और सामान्य कोड लिखने के लिए केंद्रीय महत्व रखता है।

#include <iostream>
#include <type_traits>

int main() {
    using T = std::remove_reference_t<int&>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

add_pointer और add_const

रूपांतरण क्वालिफ़ायर भी जोड़ सकते हैं।

  • add_const_t<int> = const int
  • add_pointer_t<int> = int*
#include <iostream>
#include <type_traits>

int main() {
    using P = std::add_pointer_t<int>;
    std::cout << std::is_same_v<P, int*> << "\n";
    return 0;
}

std::decay

std::decay_t<T> मान द्वारा पास करते समय होने वाले रूपांतरणों की नकल करता है: यह संदर्भों और cv-क्वालिफ़ायर को हटाता है तथा सरणियों और फ़ंक्शन को पॉइंटर में बदल देता है।

#include <iostream>
#include <type_traits>

int main() {
    using T = std::decay_t<const int&>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

सरणी रूपांतरण

decay किसी सरणी प्रकार को पॉइंटर में बदलता है, ठीक उसी तरह जैसे किसी फ़ंक्शन को सरणी पास करते समय होता है।

#include <iostream>
#include <type_traits>

int main() {
    using T = std::decay_t<int[5]>;
    std::cout << std::is_same_v<T, int*> << "\n";
    return 0;
}

remove_cv

std::remove_cv_t<const volatile int> const और volatile दोनों को हटाकर साधारण int देता है।

#include <iostream>
#include <type_traits>

int main() {
    using T = std::remove_cv_t<const volatile int>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

common_type

std::common_type_t<A,B> वह प्रकार देता है जिसमें दोनों को बदला जा सकता है, जैसे a + b के परिणाम का प्रकार।

#include <iostream>
#include <type_traits>

int main() {
    using T = std::common_type_t<int, double>;
    std::cout << std::is_same_v<T, double> << "\n";
    return 0;
}

underlying_type

एनम के लिए std::underlying_type_t<E> उस एनम के आधार में मौजूद पूर्णांक प्रकार को प्रकट करता है।

#include <iostream>
#include <type_traits>

enum class Color : unsigned char { Red, Green };

int main() {
    using U = std::underlying_type_t<Color>;
    std::cout << std::is_same_v<U, unsigned char> << "\n";
    return 0;
}

रूपांतरणों की श्रृंखला

रूपांतरणों को संयोजित किया जा सकता है। फ़ॉरवर्ड किए गए प्रकार को सामान्य बनाने के लिए आप अक्सर इन्हें जोड़ते हैं, जैसे remove_cv_t<remove_reference_t<T>>, जो मूलतः उसी प्रक्रिया से शुरू होता है जो decay करता है।

रूपांतरण क्यों महत्वपूर्ण हैं

सामान्य फ़ंक्शन को अक्सर const T& या T&& प्राप्त होता है, लेकिन स्थानीय चर घोषित करने या मान लौटाने के लिए उन्हें मूल प्रकार की आवश्यकता होती है। रूपांतरण-लक्षण आपको यह साफ़ प्रकार देते हैं।

त्वरित जाँच

याद कीजिए कि decay क्या करता है।

पुनरावलोकन

आपने प्रकार रूपांतरण सीखे।

  • लक्षण ::type उपलब्ध कराते हैं, जिसका _t संक्षिप्त रूप है
  • remove_const, remove_reference, remove_cv
  • add_pointer, add_const, decay
  • व्युत्पन्न परिणामों के लिए common_type, underlying_type
शुरुआत निःशुल्क

एआई शिक्षक के साथ C++ सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “प्रकारों में रूपांतरण” पाठ निःशुल्क है?

हाँ — C++ Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “प्रकारों में रूपांतरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“प्रकारों में रूपांतरण” में मैं क्या सीखूँगा?

remove_const, decay और अन्य आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C++ Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या C++ Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C++ Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“प्रकारों में रूपांतरण” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस C++ Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर C++ Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. प्रकारों पर क्वेरी करना
  2. प्रकारों में रूपांतरण
  3. सशर्त तर्क
  4. कस्टम Traits लिखना
← C++ Academy पर वापस जाएँ