এই আর্টিকেলে আমরা C++ STL-এ std::is_class টেমপ্লেটের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।
is_class টেমপ্লেটটি ব্যবহার করা হয় ডিফাইন করা টাইপটি ক্লাস টাইপ কিনা অন্য কোনো টাইপ নয় তা চেক করার জন্য।
ক্লাস কী?
একটি ক্লাস হলো ব্যবহারকারী-ডিফাইনড ডেটা টাইপ বা একটি ডেটা স্ট্রাকচার যাতে কিছু ডেটা মেম্বার বা মেম্বার ফাংশন থাকে যা 'class' কীওয়ার্ড দিয়ে ডিক্লেয়ার করা হয়।
উদাহরণ
class abc {
int data_members;
void member_function();
};
সুতরাং, is_class টেমপ্লেটটি চেক করে যে টাইপ T একটি ক্লাস, এবং অনুযায়ী বুলিয়ান মান true বা false রিটার্ন করে।
সিনট্যাক্স
template <class T> is_class;
প্যারামিটারস
টেমপ্লেটটি শুধুমাত্র একটি প্যারামিটার টাইপ T নিতে পারে, এবং চেক করে যে দেওয়া টাইপটি একটি ক্লাস কিনা।
রিটার্ন ভ্যালু
এটি একটি বুলিয়ান মান রিটার্ন করে, দেওয়া টাইপটি ক্লাস হলে true, এবং না হলে false।
উদাহরণ
Input: class abc { }; is_class<abc>::value; Output: True
Input: union abc { }; is_class<abc>::value; Output: False
উদাহরণ
#include <iostream>
#include <type_traits>
using namespace std;
class TP_1 { };
union TP_2 {
int var_1;
float var_2;
};
int main() {
cout << boolalpha;
cout << "checking for is_class template: ";
cout << "\nTP_1 class : " << is_class<TP_1>::value;
cout << "\nTP_2 union : " << is_class<TP_2>::value;
return 0;
}
আউটপুট
checking for is_class template: TP_1 class : true TP_2 union : false
উদাহরণ
#include <iostream>
#include <type_traits>
using namespace std;
class TP_1 {
int var_1;
float var_2;
char var_3;
};
union TP_2 {
int var_1;
float var_2;
char var_3;
};
struct TP_3 {
int var_1;
float var_2;
char var_3;
};
int main() {
cout << boolalpha;
cout << "checking for is_class template: ";
cout << "\nTP_1 class : " << is_class<TP_1>::value;
cout << "\nTP_2 union : " << is_class<TP_2>::value;
cout << "\nTP_3 structure : " << is_class<TP_3>::value;
return 0;
}
আউটপুট
checking for is_class template: TP_1 class : true TP_2 union : false TP_3 structure : true