[temp.deduct.guide/3] के अनुसार:नेस्टेड टेम्पलेट वर्ग के लिए कटौती मार्गदर्शिका कैसे प्रदान करें?
(...) एक कटौती-गाइड इसी वर्ग टेम्पलेट के रूप में एक ही दायरे में घोषित किया जाएगा और, एक सदस्य वर्ग टेम्पलेट के लिए, एक ही उपयोग के साथ। (...)
लेकिन उदाहरण नीचे [gcc] और [clang] दोनों में संकलित करने के लिए प्रतीत नहीं होता। नेस्टेड टेम्पलेट वर्ग के लिए कटौती गाइड की सही सिंटैक्स
#include <string>
template <class>
struct Foo {
template <class T>
struct Bar {
Bar(T) { }
};
Bar(char const*) -> Bar<std::string>;
};
int main() {
Foo<int>::Bar bar("abc");
static_cast<void>(bar);
}
क्या है? या शायद यह सही है लेकिन अभी तक संकलक द्वारा समर्थित नहीं है?
#include <string>
template <class T>
struct Bar {
Bar(T) { }
};
Bar(char const*) -> Bar<std::string>;
int main() {
Bar bar("abc");
static_cast<void>(bar);
}
जीसीसी में यह एक बग है, जिसमें ऐसा लगता है कि आप एक समारोह घोषित करते हैं। –
@ सोप्रप्रोग्रामड्यूड मुझे यकीन नहीं है कि यह सही वाक्यविन्यास है या नहीं - मानक में कोई समान उदाहरण नहीं है, फिर भी यह स्थिति का उल्लेख करता है ... –
नेस्टेड टेम्पलेट कटौती गाइड काम करता है यदि अभिभावक वर्ग टेम्पलेट नहीं किया गया है .... – AndyG