मुझे पता है कि C ++ 11 में अब हम s की using
तरह टाइप उपनाम लिखने के लिए उपयोग कर सकते हैं typedef
:
typedef int MyInt;
है, जो मैं समझता हूं, उसके बराबर:
using MyInt = int;
और वह नया वाक्य-विन्यास " template typedef
" को व्यक्त करने के तरीके के प्रयास से उभरा :
template< class T > using MyType = AnotherType< T, MyAllocatorType >;
लेकिन, पहले दो गैर-टेम्पलेट उदाहरणों के साथ, क्या मानक में कोई अन्य सूक्ष्म अंतर हैं? उदाहरण के लिए, typedef
"कमजोर" तरीके से अलियासिंग करें। यह है कि यह एक नया प्रकार नहीं बनाता है, लेकिन केवल एक नया नाम (उन नामों के बीच रूपांतरण निहित हैं)।
क्या यह समान है using
या यह एक नया प्रकार उत्पन्न करता है? क्या कोई मतभेद हैं?
typedef void MyFunc(int,int);
(जो वास्तव में बुरा नहीं दिखता है), याusing MyFunc = void(&)(int,int);
using MyFunc = void(&)(int,int);
? क्या इसका मतलब MyFunc
किसी फ़ंक्शन का संदर्भ है? क्या होगा यदि आप & को छोड़ दें ?
typedef void (&MyFunc)(int,int);
। यदि आप &
इसे छोड़ दें तो यह बराबर हैtypedef void MyFunc(int,int);
typedef void (&MyFunc)(int,int);
याusing MyFunc = void(int,int);
?