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