এই নিবন্ধে আমরা C++ STL-এ std::is_rvalue_reference টেমপ্লেটের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব। C++-এ is_rvalue_reference টেমপ্লেটটি সংজ্ঞায়িত প্রকারটি একটি rvalue রেফারেন্স কিনা তা পরীক্ষা করতে ব্যবহার করা হয়।
একটি rvalue কি?
Rvalues হল সেই মান যা একটি অ্যাসাইনমেন্ট অপারেটরের ডান দিকে থাকে। Rvalues হল মান
rvalue রেফারেন্স কি?
Rvalue রেফারেন্স ডবল অ্যাম্পারস্যান্ড চিহ্ন (&&) দ্বারা চিহ্নিত করা হয়। এটি শুধুমাত্র rvalue মান দিয়ে শুরু করতে ব্যবহৃত হয়।
সিনট্যাক্স
int&& a;
সিনট্যাক্স
template <class T> is_rvalue_reference;
পরামিতি
টেমপ্লেটে শুধুমাত্র T প্রকারের প্যারামিটার থাকতে পারে এবং প্রদত্ত টাইপটি একটি rvalue রেফারেন্স কিনা তা পরীক্ষা করে দেখুন
রিটার্ন মান
এটি একটি বুলিয়ান মান প্রদান করে, যদি প্রদত্ত মানটি একটি rvalue রেফারেন্স হয় তবে সত্য এবং প্রদত্ত মানটি একটি rvalue রেফারেন্স না হলে বা যখন আমরা একটি অজানা অবস্থান উল্লেখ করছি তখন মিথ্যা৷
উদাহরণ
Input: is_rvalue<int&>::value; Output: False Input: is_rvalue<int&&>::value; Output: True
উদাহরণ
#include <iostream> #include <type_traits> using namespace std; int main() { cout << std::boolalpha; cout << "Checking for is_lvalue_reference: "; cout << "\nint : "<<is_rvalue_reference<int>::value; cout << "\nint& : "<< is_rvalue_reference<int&>::value; cout << "\nint&&: "<< is_rvalue_reference<int&&>::value; cout << "\nchar : "<<is_rvalue_reference<char>::value; cout << "\nchar& : "<< is_rvalue_reference<char&>::value; cout << "\nchar&&: "<< is_rvalue_reference<char&&>::value; cout << "\nfloat : "<<is_rvalue_reference<float>::value; cout << "\nfloat& : "<< is_rvalue_reference<float&>::value; cout << "\nfloat&&: "<< is_rvalue_reference<float&&>::value; cout << "\ndouble : "<<is_rvalue_reference<double>::value; cout << "\ndouble& : "<< is_rvalue_reference<double&>::value; cout << "\ndouble&&: "<< is_rvalue_reference<double&&>::value; return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেChecking for is_rvalue_reference: int : false int& : false int&&: ture char : false char& : false char&&: ture float : false float& : false float&&: ture double: false double : false double&&: ture
উদাহরণ
#include <iostream> #include <type_traits> using namespace std; class TP { }; int main() { cout << std::boolalpha; cout << "Checking for is_lvalue_reference: "; cout << "\nTP class : "<<is_rvalue_reference<TP>::value; cout << "\nTP& : "<< is_rvalue_reference<TP&>::value; cout << "\nTP&&: "<< is_rvalue_reference<TP&&>::value; return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেChecking for is_rvalue_reference: TP class : false TP& : false TP&&: true