কম্পিউটার টিউটোরিয়াল

C++-এ is_class টেমপ্লেট

এই আর্টিকেলে আমরা 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
  1. C++-এ ভার্চুয়াল বেস ক্লাস

  2. C++-এ String at() মেথড ব্যবহার

  3. C++-এ স্ট্রাকচার vs ক্লাস (Structure vs class in C++)

  4. C++-এ লোকাল ক্লাস