এই নিবন্ধে আমরা 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পরীক্ষা করা হচ্ছে