अंतिम अद्यतन:2026-10-12
C++17 std::variant¶
हाल में कुछ दिलचस्प सवाल सोचे, एक छोटा सारांश बनाते हैं, आप कितने सवालों के जवाब दे सकते हैं?
नोट: पूरे जवाब 星球 पर खोले जाएँगे।
सवाल 1: std::variant कंस्ट्रक्टर कितने प्रकारों के कंस्ट्रक्टर को कॉल करता है, 1? 2? n?
संबंधित सवाल:
std::variantका डिफ़ॉल्ट कंस्ट्रक्शन व्यवहार कैसा होता है?- जब
std::variantमें शामिल प्रकार का डिफ़ॉल्ट कंस्ट्रक्टर न हो तो क्या होगा? std::variantके प्रारंभिक मान का प्रकार कैसे निर्दिष्ट करें?
सवाल 2: क्या नीचे दिया कोड सामान्य रूप से चल सकता है? यदि चल सकता है तो कारण बताएँ, अन्यथा कुछ समाधान दें।
struct X {
X(int v) : v_(v) {}
int v_;
};
struct Y {
Y(double v) : v_(v) {}
double v_;
};
std::variant<X, Y> a1;
संबंधित सवाल:
std::variantमें डिफ़ॉल्ट कंस्ट्रक्टर वाला प्रकार कैसे जोड़ें?- जब
std::variantकी प्रकार सूची में कोई डिफ़ॉल्ट कंस्ट्रक्टर न हो, तो कौन से समाधान हैं? - डिफ़ॉल्ट कंस्ट्रक्शन समस्या से बचने के लिए
std::variantको स्पष्ट रूप से कैसे कंस्ट्रक्ट करें?
सवाल 3: monostate क्या है, और यह किस समस्या को हल करता है?
संबंधित सवाल:
std::variantमेंstd::monostateका उपयोग कैसे करें?std::monostateके आने सेstd::variantके डिज़ाइन पर क्या प्रभाव पड़े?- किन परिस्थितियों में
std::monostateका उपयोग करना उचित है?
सवाल 4: defer_lock_t, try_to_lock_t, adopt_lock_t इन तीनों में क्या अंतर है? किन परिदृश्यों में उपयोग करें?
संबंधित सवाल:
defer_lock_tके उपयोग के परिदृश्य और क्रियान्वयन संरचना क्या है?try_to_lock_tम्यूटेक्स के लॉक करने के प्रयास को कैसे संभालता है?adopt_lock_tद्वारा पहले से लिए लॉक की स्वामित्व संभालते समय किन बातों का ध्यान रखना चाहिए?
संबंधित विषय¶
- C++17 [[nodiscard]] एट्रिब्यूट | C++那些事
- C++17 std::string_view | C++那些事
- C++17 PMR मेमोरी रिसोर्सेज़ | C++那些事
- C++17 सत्तरह उन्नत विशेषताएँ | C++那些事
- C++17 क्लास टेम्प्लेट आर्ग्युमेंट डिडक्शन CTAD | C++那些事
- C++17 optional_ref | C++那些事
- C++17 स्ट्रक्चर्ड बाइंडिंग्स | C++那些事
- C++17 टेम्प्लेट auto डिडक्शन | C++那些事
- C++17 वेरिएबल टेम्प्लेट्स | C++那些事