Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Template is_unsigned ใน C++

ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของ template std::is_unsigned ใน C++ STL

is_unsigned เป็น template ใน header <type_traits> ใช้ตรวจสอบว่าชนิด T เป็น unsigned type หรือไม่

Unsigned Data Types ใน C++ คืออะไร?

Unsigned data types ใช้เมื่อรู้ว่าค่าไม่ติดลบ เช่น เลขที่นักเรียน ID หมายเลขสุ่ม เป็นต้น

ใช้ keyword unsigned นำหน้าชนิดข้อมูล เช่น unsigned int, unsigned float (แม้ float จะไม่รองรับ unsigned โดยตรง)

ไวยากรณ์

template <class T> is_unsigned;

พารามิเตอร์

Template รับพารามิเตอร์ชนิด T เพียงอย่างเดียว ตรวจสอบว่าเป็น unsigned type หรือไม่

ค่าที่คืน

คืนค่า Boolean: true หากเป็น unsigned type, false หากไม่ใช่

ตัวอย่าง

Input: is_unsigned<unsigned int>::value; Output: true
Input: is_unsigned<int>::value; Output: false

ตัวอย่างโค้ด 1

#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_unsigned:";
    cout << "\nint:" << is_unsigned<int>::value;
    cout << "\nTP:" << is_unsigned<TP>::value;
    cout << "\nTP_1:" << is_unsigned<TP_1>::value;
    cout << "\nTP_2:" << is_unsigned<TP_2>::value;
    return 0;
}

เอาต์พุต

checking for is_unsigned:
Int: false
TP: false
TP_1: false
TP_2: false

ตัวอย่างโค้ด 2

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

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

เอาต์พุต

checking for is_signed:
Float: false
Signed int: false
Unsigned int: true
Double: false

หมายเหตุ

ชนิด floating-point (float, double) ไม่มี unsigned version ใน C++ มาตรฐาน