আমি জানি যে সি ++ 11 এ আমরা এখন using
টাইপের নাম লিখতে ব্যবহার করতে পারি , এর মতো typedef
:
typedef int MyInt;
এটি, আমি যা বুঝি তার থেকে সমতুল্য:
using MyInt = int;
এবং "নতুন প্রকাশের উপায় থাকার চেষ্টা থেকে এই নতুন বাক্য গঠনটি প্রকাশ পেয়েছে template typedef
:
template< class T > using MyType = AnotherType< T, MyAllocatorType >;
তবে, প্রথম দুটি নন-টেম্পলেট উদাহরণ সহ, মানের মধ্যে অন্য কোনও সূক্ষ্ম পার্থক্য রয়েছে? উদাহরণস্বরূপ, typedef
s একটি "দুর্বল" উপায়ে aliasing করুন। এটি কোনও নতুন ধরণের তৈরি করে না তবে কেবল একটি নতুন নাম তৈরি করে (রূপান্তরগুলি সেই নামের মধ্যে অন্তর্ভুক্ত)।
এটি কি একই রকম 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);
?