কম্পিউটার

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


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

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

এই টেমপ্লেটটি is_rvalue এবং is_lvalue এর সংমিশ্রণ এবং পরীক্ষা করে যে কোন একটি সত্য হলে, is_reference-এর ফলাফলও সত্য হবে।

C++ এ একটি রেফারেন্স কি?

একটি রেফারেন্স একটি উপনাম বা ইতিমধ্যে বিদ্যমান ভেরিয়েবলের অন্য নাম। একটি রেফারেন্স পয়েন্টার −

থেকে আলাদা
  • যেহেতু আমরা একটি রেফারেন্স নাল হিসাবে সেট করতে পারি না কিন্তু একটি পয়েন্টার একটি নাল পয়েন্টার হতে পারে৷
  • একবার একটি রেফারেন্স একটি বস্তুর শুরু হলে এটি পরিবর্তন করা যাবে না। পয়েন্টার যে কোন সময় অন্য যে কোন বস্তুর দিকে নির্দেশ করা যেতে পারে।
  • তৈরি করার সময় একটি রেফারেন্স সূচনা করতে হবে, যেখানে তৈরির পরে পয়েন্টার হিসেবে শুরু করা যেতে পারে।

একটি রেফারেন্স ঘোষণা করা যেতে পারে একটি ampersand(&) চিহ্ন ব্যবহার করে যাকে আমরা উল্লেখ করতে চাই তার পূর্ববর্তী পরিবর্তনশীল৷

সিনট্যাক্স

template <class T> is_reference;

পরামিতি

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

রিটার্ন মান

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

উদাহরণ

Input: is_reference<int>::value;
Output: False

Input: is_reference<int&>::value;
Output: True

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;
class TP {
};
int main() {
   cout << boolalpha;
   cout << "Checking for is_reference: ";
   cout << "\n class TP : "<<is_reference<TP>::value;
   cout << "\n class TP&: "<<is_polymorphic<TP&>::value;
   cout << "\n class TP&&: "<<is_polymorphic<TP&&>::value;
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Checking for is_reference:
class TP : false
class TP&: false
class TP&&: false
পরীক্ষা করা হচ্ছে

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "Checking for is_reference: ";
   cout << "\n int: "<<is_reference<int>::value;
   cout << "\n int&: "<< is_reference <int&>::value;
   cout << "\n int&&: "<< is_reference <int&&>::value;
   // char
   cout << "\n char: "<<is_reference<char>::value;
   cout << "\n char&: "<< is_reference <char&>::value;
   cout << "\n char&&: "<< is_reference <char&&>::value;
   //float
   cout << "\n float: "<<is_reference<float>::value;
   cout << "\n float&: "<< is_reference <float&>::value;
   cout << "\n float&&: "<< is_reference <float&&>::value;
   //double
   cout << "\n double: "<<is_reference<double>::value;
   cout << "\n double&: "<< is_reference <double&>::value;
   cout << "\n double&&: "<< is_reference <double&&>::value;
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Checking for is_reference:
int: false
int&: true
int&&: true
char: false
char&: true
char&&: true
float: false
float&: true
float&&: true
double: false
double&: true
double&&: true

  1. C++ এ টেমপ্লেট মেটাপ্রোগ্রামিং

  2. fabs() C++ এ

  3. expm1() C++ এ

  4. log1p() C++ এ