निम्नलिखित कोड पर विचार करें:क्या टेम्पलेट उपनाम बनाना संभव है?
template< template< typename ... > class ... Ts >
struct unite
{
template< typename ... T >
struct type
: Ts< T ... > ...
{ };
};
// This does not work as ::type does not name a type, but a template:
// template< template< typename ... > class ... Ts >
// using unite_t = typename unite< Ts ... >::type;
template<typename> struct debug_none {};
template<typename> struct debug_cout {};
template< typename ... > struct raise_demangled {};
template< typename ... > struct raise_specialized {};
template< typename, typename = int > struct match_default {};
template< template< typename ... > class Control >
void f()
{}
int main()
{
f< unite< debug_none, raise_demangled, match_default >::type >();
// Is there any way to create something like unite_t which works like this:
// f< unite_t< debug_none, raise_demangled, match_default > >();
}
प्रश्न: वहाँ एक प्रकार उर्फ के समान "टेम्पलेट उर्फ" किसी तरह का बनाने के लिए कोई तरीका है? (उपरोक्त उदाहरण में unite_t
देखें)
तो, प्रश्न: मुझे याद आया जैसे मैंने लिखा था कि मैंने पहले इस सटीक प्रश्न से पूछा था। क्या मुझे अपना http://stackoverflow.com/questions/17356487/equivalent-of-using-aliases-for- टेम्पलेट्स को इस के डुप्लिकेट के रूप में बंद करना चाहिए? या ठीक इसके विपरीत? :) – Yakk
@Yakk हालांकि आपका प्रश्न काफी समान है और उसी क्षेत्र में, मुझे नहीं लगता कि यह वास्तव में एक डुप्लिकेट है, क्योंकि आपने किसी भिन्न स्थान पर 'टेम्पलेट' कीवर्ड से छुटकारा पाने का प्रयास किया था। यदि एक * के लिए एक समाधान * मौजूद होगा, तो यह * अन्य समस्या को भी हल कर सकता है - लेकिन ऐसा लगता है कि कोई समाधान नहीं है। –