मैं एक प्रकार विशेषता यदि किसी विशेष प्रकार किसी वर्ग टेम्पलेट का एक उदाहरण है की जाँच करता है कि है:यूनिफाई प्रकार और गैर प्रकार टेम्प्लेट पैरामीटर
template <template <typename...> class C, typename T>
struct check_is_instance_of : std::false_type { };
template <template <typename...> class C, typename ...Ts>
struct check_is_instance_of<C, C<Ts...>> : std::true_type { };
template <template <typename...> class C, typename T>
struct is_instance_of : check_is_instance_of<C, std::remove_cv_t<T>> { };
दुर्भाग्य से, यह गैर प्रकार टेम्पलेट मापदंडों के लिए काम नहीं करता है क्योंकि वे विविध टेम्पलेट पैरामीटर द्वारा "कब्जा" नहीं हैं, इसलिए
is_instance_of<std::integral_constant, std::true_type>
संकलन-त्रुटि उत्पन्न करता है। is_instance_of
के कार्यान्वयन को लिखने का कोई तरीका है जो मनमाने ढंग से प्रकार और गैर-प्रकार के टेम्पलेट पैरामीटर के लिए काम करता है?
नहीं आपके प्रश्न का उत्तर है, लेकिन यह कार्यान्वयन टेम्पलेट टेम्पलेट उपनामों के साथ काम नहीं करेगा। हो सकता है कि आप यही चाहते हैं, लेकिन शायद नहीं। – TartanLlama