Computer >> Máy Tính >  >> Lập trình >> C ++

mẫu is_unsigned trong C ++

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của mẫu std ::is_unsigned trong C ++ STL.

is_unsigned là một mẫu nằm trong tệp tiêu đề . Mẫu này được sử dụng để kiểm tra xem kiểu T đã cho có phải là kiểu không dấu hay không.

Kiểu dữ liệu không dấu trong C ++ là gì?

Các kiểu dữ liệu chưa được đánh dấu là những kiểu mà chúng tôi sử dụng khi biết các giá trị sẽ không âm, như số cuộn, id của số ngẫu nhiên, v.v.

Để tạo một loại là không có dấu, chúng tôi sử dụng từ khóa không có dấu làm tiền tố của loại dữ liệu như -

int không dấu;

float không dấu;

Cú pháp

template <class T>is_unsigned;

Tham số

Mẫu chỉ có thể có tham số kiểu T và kiểm tra xem T có phải là kiểu không dấu hay không.

Giá trị trả về

Nó trả về giá trị Boolean, true nếu kiểu đã cho là kiểu không dấu và false nếu kiểu đã cho không phải là kiểu không dấu.

Ví dụ

Input: is_unsigned<unsigned int>::value;
Output: True

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

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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