কম্পিউটার

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


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

is_scalar হল একটি টেমপ্লেট যা হেডার ফাইলের অধীনে আসে। এই টেমপ্লেটটি প্রদত্ত টাইপ টি একটি স্কেলার টাইপ কিনা তা পরীক্ষা করতে ব্যবহৃত হয়

এই টেমপ্লেটটি is_arithmetic, is_pointer, is_enum, is_member_pointer বা is_same এর সংমিশ্রণ এবং পরীক্ষা করে যে কোন একটি সত্য কিনা, is_scalar-এর ফলাফলও সত্য হবে।

C++ এ স্কেলার টাইপ কি?

একটি স্কেলার টাইপ হল সেই বস্তু যা একটি ক্লাস টাইপ বা অ্যারে টাইপ নয়। একটি স্কেলার টাইপ হল এমন একটি টাইপ যেটিতে কোনো ওভারলোডিং ছাড়াই সংযোজন অপারেটরের জন্য অন্তর্নির্মিত কার্যকারিতা রয়েছে৷

সিনট্যাক্স

template <class T> is_scalar;

পরামিতি

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

রিটার্ন মান

এটি একটি বুলিয়ান মান প্রদান করে, প্রদত্ত টাইপটি স্কেলার টাইপ হলে সত্য এবং প্রদত্ত টাইপটি স্কেলার টাইপ না হলে মিথ্যা।

উদাহরণ

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

Input: is_scalar<A>::value; //assuming A is an object of a class.
Output: False

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   class TP {
   };
   cout << boolalpha;
   cout << "checking for is_scalar: ";
   cout << "\nint(TP::*): "<< is_scalar<int(TP::*)>::value;
   cout << "\nint *: "<< is_scalar<int*>::value;
   cout << "\nbool: "<< is_scalar<bool>::value;
   cout << "\nint(int): "<< is_scalar<int(int)>::value;
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
checking for is_scalar:
int(TP::*): true
int *: true
bool: true
int(int): false
পরীক্ষা করা হচ্ছে

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   class TP {
   };
   enum class TP_1 {
      var_1,
      var_2,
      var_3,
      var4
   };
   cout << boolalpha;
   cout << "checking for is_scalar: ";
   cout << "\nTP : "<< is_scalar<int(TP)>::value;
   cout << "\nTP_1: "<< is_scalar<TP_1>::value;
   cout << "\nint[10] "<< is_scalar<int[10]>::value;
   cout << "\nint&: "<< is_scalar<int&>::value;
   cout << "\nchar&: "<< is_scalar<char&>::value;
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
checking for is_scalar:
TP : false
TP_1: true
int[10] false
int&: false
char&: false
পরীক্ষা করা হচ্ছে
  1. C++-এ is_final টেমপ্লেট

  2. C++ এ টাইপ কনভার্সন

  3. C++ এ টেমপ্লেট স্পেশালাইজেশন

  4. C++ এ ইনফারেন্স টাইপ করুন