কিছু পরিস্থিতিতে যেখানে আপনি তথাকথিত নির্ভরশীল কোনও সদস্যকে উল্লেখ করেন ধরণের বোঝায় (যার অর্থ "টেমপ্লেট প্যারামিটারের উপর নির্ভরশীল"), সংকলক সর্বদা নির্বিঘ্নে ফলাফল নির্মাণকারীটির অর্থকৃত অর্থটি কাটাতে পারে না, কারণ এটি কী ধরনের নাম তা জানে না that (যেমন এটি কোনও প্রকারের নাম, কোনও ডেটা সদস্যের নাম বা অন্য কোনও কিছুর নাম)। এরকম ক্ষেত্রে আপনাকে স্পষ্ট করে সংকলককে জানিয়ে দিতে হবে যে নামটি নির্ভরশীল ধরণের সদস্য হিসাবে সংজ্ঞায়িত কোনও টাইপনের সাথে সম্পর্কিত।
উদাহরণ স্বরূপ
template <class T> struct S {
typename T::type i;
};
এই উদাহরণে typename
কোডটি সংকলনের জন্য প্রয়োজনীয় কীওয়ার্ড ।
আপনি যখন নির্ভরশীল ধরণের কোনও টেম্পলেট সদস্যকে উল্লেখ করতে চান, তেমনি কোনও নামটি যা কোনও টেমপ্লেটকে মনোনীত করে The আপনাকে কীওয়ার্ডটি ব্যবহার করে সংকলকটিকে সহায়তা করতে template
হবে, যদিও এটি আলাদাভাবে স্থাপন করা হয়েছে
template <class T> struct S {
T::template ptr<int> p;
};
কিছু ক্ষেত্রে এটি উভয় ব্যবহারের প্রয়োজন হতে পারে
template <class T> struct S {
typename T::template ptr<int>::type i;
};
(যদি আমি সিনট্যাক্সটি সঠিকভাবে পেলাম)।
অবশ্যই, কীওয়ার্ডের আরেকটি ভূমিকা typename
হ'ল টেমপ্লেট প্যারামিটারের ঘোষণাগুলিতে ব্যবহার করা।