이 기사에서는 C++ STL에서 std::is_scalar 템플릿의 작동, 구문 및 예제에 대해 논의할 것입니다.
is_scalar는
이 템플릿은 is_arithmetic, is_pointer, is_enum, is_member_pointer 또는 is_same의 조합이며 둘 중 하나가 참이면 is_scalar의 결과도 참인지 여부를 확인합니다.
C++에서 스칼라 유형이란 무엇입니까?
스칼라 유형은 클래스 유형도 배열 유형도 아닌 객체입니다. 스칼라 유형은 오버로딩 없이 더하기 연산자에 대한 기능이 내장된 유형입니다.
구문
template <class T> is_scalar;
매개변수
템플릿은 T 유형의 매개변수만 가질 수 있으며 주어진 유형이 스칼라 유형인지 확인합니다.
반환 값
Boolean 값을 반환하고, 주어진 유형이 스칼라 유형이면 true, 주어진 유형이 스칼라 유형이 아니면 false를 반환합니다.
예시
Input: is_scalar<int>::value; Output: True Input: is_scalar<A>::value; //assuming A is an object of a class. Output: False
예시
#include <iostream> #include <type_traits> using namespace std; int main() { class TP { }; cout << boolalpha; cout << "checking for is_scalar: "; cout << "\nint(TP::*): "<< is_scalar<int(TP::*)>::value; cout << "\nint *: "<< is_scalar<int*>::value; cout << "\nbool: "<< is_scalar<bool>::value; cout << "\nint(int): "<< is_scalar<int(int)>::value; return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
checking for is_scalar: int(TP::*): true int *: true bool: true int(int): false
예시
#include <iostream> #include <type_traits> using namespace std; int main() { class TP { }; enum class TP_1 { var_1, var_2, var_3, var4 }; cout << boolalpha; cout << "checking for is_scalar: "; cout << "\nTP : "<< is_scalar<int(TP)>::value; cout << "\nTP_1: "<< is_scalar<TP_1>::value; cout << "\nint[10] "<< is_scalar<int[10]>::value; cout << "\nint&: "<< is_scalar<int&>::value; cout << "\nchar&: "<< is_scalar<char&>::value; return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
checking for is_scalar: TP : false TP_1: true int[10] false int&: false char&: false