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

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

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

is_signed হলো একটি টেমপ্লেট যা <type_traits> হেডার ফাইলের অধীনে আসে। এই টেমপ্লেটটি ব্যবহার করা হয় দেওয়া টাইপ T একটি সাইনড টাইপ কিনা তা চেক করার জন্য।

সাইনড টাইপ কী?

এই হলো বেসিক আর্থমেটিক টাইপস, যেগুলোর সাথে সাইন মান থাকে। সব আর্থমেটিক ডেটা টাইপ হয় সাইনড অথবা আনসাইনড।

যখন আমরা নেগেটিভ মান দেখাতে চাই তখন সাইনড টাইপ ব্যবহার করি।

যেমন: -1 হলো সাইনড ইন্ট এবং -1.009 হলো সাইনড ফ্লোট।

ডিফল্টভাবে সব টাইপ সাইনড, সেগুলো আনসাইনড বানাতে হলে ডেটা টাইপের আগে unsigned প্রিফিক্স করতে হয়।

সিনট্যাক্স

template <class T> is_signed;

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

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

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

এটি একটি বুলিয়ান মান রিটার্ন করে, দেওয়া টাইপটি সাইনড টাইপ হলে true, এবং না হলে false।

উদাহরণ

Input: is_signed<int>::value; Output: True
Input: is_signed<unsigned int>::value; Output: False

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;

class TP { };
enum TP_1 : int {};
enum class TP_2 : int {};

int main() {
    cout << boolalpha;
    cout << "checking for is_signed:";
    cout << "\nint:" << is_signed<int>::value;
    cout << "\nTP:" << is_signed<TP>::value;
    cout << "\nTP_1:" << is_signed<TP_1>::value;
    cout << "\nTP_2:" << is_signed<TP_2>::value;
    return 0;
}

আউটপুট

checking for is_signed:
Int: true
TP: false
TP_1: false
TP_2: false

উদাহরণ

#include <iostream>
#include <type_traits>
using namespace std;

int main() {
    cout << boolalpha;
    cout << "checking for is_signed:";
    cout << "\nfloat:" << is_signed<float>::value;
    cout << "\nSigned int:" << is_signed<signed int>::value;
    cout << "\nUnsigned int:" << is_signed<unsigned int>::value;
    cout << "\ndouble:" << is_signed<double>::value;
    return 0;
}

আউটপুট

checking for is_signed:
Float: true
Signed int: true
Unsigned int: false
Double: true
  1. C++-এ Line Reflection: ২D প্লেনে বিন্দুগুলোর Y-অক্ষ সমান্তরাল প্রতিফলন লাইন আছে কিনা যাচাই করা

  2. C++-এ ডায়াগোনাল ট্রায়ভার্স II

  3. প্রসেস কিল করা (Kill Process) C++-এ

  4. স্কোয়ারেল সিমুলেশন (Squirrel Simulation) C++-এ