কম্পিউটার

C++ এ is_pod টেমপ্লেট


এই নিবন্ধে আমরা C++ STL-এ std::is_pod টেমপ্লেটের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।

is_ pod হল একটি টেমপ্লেট যা হেডার ফাইলের অধীনে আসে। এই টেমপ্লেটটি প্রদত্ত টাইপটি একটি POD(প্লেইন-ওল্ড-ডেটা) টাইপ কিনা তা পরীক্ষা করতে ব্যবহার করা হয়।

পিওডি (সাধারণ পুরানো ডেটা) কি?

সাধারণ পুরানো ডেটা (পিওডি) প্রকারগুলি হল সেই প্রকারগুলি যা পুরানো সি ভাষায়ও রয়েছে। POD প্রকারগুলিও স্কেলার প্রকার অন্তর্ভুক্ত করে। POD ক্লাস টাইপ হল সেই ক্লাস টাইপ যা উভয়ই, তুচ্ছ (যা স্ট্যান্ডার্ডভাবে শুরু করা যেতে পারে) এবং স্ট্যান্ডার্ড লেআউট (যা একটি সাধারণ ডেটা স্ট্রাকচার যেমন struct এবং ইউনিয়ন)।

সিনট্যাক্স

template <class T> is_pod;

পরামিতি

টেমপ্লেটে শুধুমাত্র T টাইপের প্যারামিটার থাকতে পারে এবং প্রদত্ত টাইপটি প্লেইন ওল্ড ডেটা টাইপ কিনা তা পরীক্ষা করে দেখুন।

রিটার্ন মান

এটি একটি বুলিয়ান মান প্রদান করে, যদি প্রদত্ত প্রকারটি একটি সাধারণ পুরানো ডেটা হয় তবে সত্য এবং প্রদত্ত প্রকারটি একটি সাধারণ পুরানো ডেটা না হলে মিথ্যা৷

উদাহরণ

Input: class final_abc{ final_abc(); };
   is_pod<final_abc>::value;
Output: False

Input: is_pod<int>::value;
Output: True

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;
struct TP_1 {
   int var_1;
};
struct TP_2 {
   int var_2;
   private:
   int var_3;
};
struct TP_3 {
   virtual void dummy();
};
int main() {
   cout << boolalpha;
   cout << "checking for is_pod:";
   cout << "\nTP_1: " << is_pod<TP_1>::value;
   cout << "\nTP_2: " << is_pod<TP_2>::value;
   cout << "\nTP_3: " << is_pod<TP_3>::value;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
checking for is_pod:
TP_1: true
TP_2: false
TP_3: false

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;
class TP_1 {
   int var_1;
};
class TP_2 {
   int var_2;
   private:
   int var_3;
};
class TP_3 {
   virtual void dummy();
};
int main() {
   cout << boolalpha;
   cout << "checking for is_pod:";
   cout << "\nTP_1: " << is_pod<TP_1>::value;
   cout << "\nTP_2: " << is_pod<TP_2>::value;
   cout << "\nTP_3: " << is_pod<TP_3>::value;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
checking for is_pod:
TP_1: true
TP_2: true
TP_3: false

  1. C++ এ টেমপ্লেট মেটাপ্রোগ্রামিং

  2. fabs() C++ এ

  3. expm1() C++ এ

  4. log1p() C++ এ