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_signed trong C ++ STL.
is_ sign là một mẫu nằm trong tệp tiêu đề
Kiểu có chữ ký là gì?
Đây là các kiểu số học cơ bản, có chứa giá trị dấu với chúng. Tất cả các kiểu dữ liệu số học đều có dấu và không dấu.
Giống như chúng tôi muốn hiển thị các giá trị ở dạng phủ định, chúng tôi sử dụng loại có dấu.
Giống như:-1 được ký vào int và -1,009 được ký vào float.
Theo mặc định, tất cả các loại được ký để làm cho chúng không có dấu, chúng tôi phải đặt tiền tố cho loại dữ liệu là không có dấu.
Cú pháp
template <class T> is_signed;
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 có dấu hay không.
Giá trị trả về
Nó trả về một giá trị Boolean, true nếu kiểu đã cho là kiểu Đã ký và false nếu kiểu đã cho không phải là kiểu có dấu.
Ví dụ
Input: is_signed<int>::value; Output: True Input: is_signed<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_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; }
Đầ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: Int: true 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_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; }
Đầ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: true Signed int: true Unsigned int: false Double: true