Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 is_signed 템플릿

<시간/>

이 기사에서는 C++ STL에서 std::is_signed 템플릿의 작동, 구문 및 예제에 대해 논의할 것입니다.

is_signed는 헤더 파일 아래에 있는 템플릿입니다. 이 템플릿은 주어진 유형 T가 서명된 유형인지 여부를 확인하는 데 사용됩니다.

서명된 유형이란 무엇입니까?

이것들은 그들과 함께 부호 값을 포함하는 기본 산술 유형입니다. 모든 산술 데이터 유형은 부호가 있거나 부호가 없습니다.

음수로 값을 표시하려는 것처럼 부호 있는 유형을 사용합니다.

예:-1은 부호 있는 정수이고 -1.009는 부호 있는 부동 소수점입니다.

기본적으로 모든 유형은 서명되지 않은 것으로 만들기 위해 서명되어 있습니다. 데이터 유형에는 unsigned를 접두사로 붙여야 합니다.

구문

template <class T> is_signed;

매개변수

템플릿은 T 유형의 매개변수만 가질 수 있으며 T가 서명된 유형인지 여부를 확인합니다.

반환 값

Boolean 값을 반환하고, 주어진 유형이 Signed 유형이면 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