কম্পিউটার টিউটোরিয়াল

C++-এ is_lvalue_reference টেমপ্লেট

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

C++-এ is_lvalue_reference টেমপ্লেটটি ব্যবহার করা হয় ডিফাইন করা টাইপটি একটি lvalue রেফারেন্স কিনা তা চেক করার জন্য।

lvalue কী?

Lvalues হলো মানগুলো যা অ্যাসাইনমেন্ট অপারেটরের বাম পাশে থাকে। Lvalues হলো এক্সপ্রেশন যা মেমরি লোকেশনকে রেফার করে।

Lvalue রেফারেন্স কী?

Lvalue রেফারেন্স হলো একটি রেফারেন্স যা একটি lvalue-কে বাইন্ড করে। এটি ঐতিহ্যগত C++ বা C ভাষায় আমরা ভেরিয়েবলকে কীভাবে রেফার করতাম তার সাথে খুব মিলত, অর্থাৎ ভেরিয়েবলের সাথে অ্যাম্পারস্যান্ড সিম্বল (&) ব্যবহার করে তার ঠিকানা রেফার করতে।

উদাহরণ

int& a;

সিনট্যাক্স

template <class T> is_lvalue_reference;

প্যারামিটারস

টেমপ্লেটটি শুধুমাত্র একটি প্যারামিটার টাইপ T নিতে পারে, এবং চেক করে যে দেওয়া টাইপটি একটি lvalue রেফারেন্স কিনা।

রিটার্ন ভ্যালু

এটি একটি বুলিয়ান মান রিটার্ন করে, দেওয়া মানটি lvalue রেফারেন্স হলে true, এবং দেওয়া মানটি lvalue রেফারেন্স না হলে অথবা অজানা লোকেশন রেফারেন্স করার সময় false।

উদাহরণ

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
  1. C++-এ টেমপ্লেট মেটাপ্রোগ্রামিং

  2. C++-এ fabs() ফাংশন

  3. C++-এ expm1() ফাংশন

  4. C++-এ log1p() ফাংশন