기본 타입
항목 |
내용 |
size_t |
unsigned int 으로서 크기나 갯수를 나타냅니다. |
ptrdiff_t |
signed int 으로서 포인터간의 차를 나타냅니다. |
nullptr_t (C++11~) |
nullptr을 저장하는 타입입니다. |
NULL |
널포인터의 값이며, #define NULL 0 입니다. |
max_align_t (C++11~) |
(작성중) |
offsetof() |
(작성중) |
byte (C++17~) |
순수한 1byte 크기를 갖는 타입입니다.(char , unsigned char 는 문자 처리 의미가 포함된 1byte 크기의 타입입니다.) |
수학 타입
항목 |
내용 |
div_t |
(작성중) |
ldiv_t |
(작성중) |
lldiv_t (C++11) |
(작성중) |
imaxdiv_t (C++11) |
(작성중) |
float_t (C++11) |
(작성중) |
double_t (C++11) |
(작성중) |
(C++11~) 고정 너비 정수 타입
항목 |
내용 |
int8_t (C++11~)
int16_t (C++11~)
int32_t (C++11~)
int64_t (C++11~) |
(작성중) |
int_fast8_t (C++11~)
int_fast16_t (C++11~)
int_fast32_t (C++11~)
int_fast64_t (C++11~) |
(작성중) |
int_least8_t (C++11~)
int_least16_t (C++11~)
int_least32_t (C++11~)
int_least64_t (C++11~) |
(작성중) |
intmax_t (C++11~) |
(작성중) |
intptr_t (C++11~) |
(작성중) |
uint8_t (C++11~) uint16_t (C++11~) uint32_t (C++11~) uint64_t (C++11~) |
(작성중) |
uint_fast8_t (C++11~)
uint_fast16_t (C++11~)
uint_fast32_t (C++11~)
uint_fast64_t (C++11~) |
(작성중) |
uint_least8_t (C++11~)
uint_least16_t (C++11~)
uint_least32_t (C++11~)
uint_least64_t (C++11~) |
(작성중) |
uintmax_t (C++11~) |
(작성중) |
uintptr_t (C++11~) |
(작성중) |
(C++23~) 고정 너비 실수 타입
항목 |
내용 |
float16_t (C++23~) |
(작성중) |
float32_t (C++23~) |
(작성중) |
float64_t (C++23~) |
(작성중) |
float128_t (C++23~) |
(작성중) |
bfloat16_t (C++23~) |
(작성중) |
타입 최대/최소값
C스타일 최대/최소값
항목 |
내용 |
CHAR_BIT |
(작성중) |
MB_LEN_MAX |
(작성중) |
CHAR_MIN |
(작성중) |
CHAR_MAX |
(작성중) |
SCHAR_MIN
SHRT_MIN
INT_MIN
LONG_MIN
LLONG_MIN (C++11~) |
(작성중) |
SCHAR_MAX
SHRT_MAX
INT_MAX
LONG_MAX
LLONG_MAX (C++11~) |
(작성중) |
UCHAR_MAX
USHRT_MAX
UINT_MAX
ULONG_MAX
ULLONG_MAX (C++11~) |
(작성중) |
WCHAR_MIN (C++11~) |
(작성중) |
WCHAR_MAX (C++11~) |
(작성중) |
PTRDIFF_MIN (C++11~) |
(작성중) |
PTRDIFF_MAX (C++11~) |
(작성중) |
SIZE_MAX (C++11~) |
(작성중) |
SIG_ATOMIC_MIN (C++11~) |
(작성중) |
SIG_ATOMIC_MAX (C++11~) |
(작성중) |
WINT_MIN (C++11~) |
(작성중) |
WINT_MAX (C++11~) |
(작성중) |
런타임 타입
typeid()는 const type_info&
를 리턴하는데요, 컨테이너 요소 규칙인 복사 생성자나 연관 컨테이너를 위한 대소 비교를 제공하지 않아 컨테이너에 추가할 수 없습니다.
type_index는 const type_info&
를 컨테이너의 요소로 사용할 수 있게끔 복사 생성자와 대소 비교를 구현한 래퍼입니다.
이를 이용하면 const type_info&
를 관리하는 컨테이너를 만들 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class A {};
class B {};
// const std::type_info& 여서 컨테이너에서 사용할 수 없습니다.
// const std::type_info& a{typeid(A)};
// const std::type_info& b{typeid(B)};
std::type_index a{typeid(A)};
std::type_index b{typeid(B)};
std::map<std::type_index, int> m;
m.insert(std::make_pair(a, 0)); // A 타입의 추가 정보를 저장할 수 있습니다.
m.insert(std::make_pair(b, 1)); // B 타입의 추가 정보를 저장할 수 있습니다.
EXPECT_TRUE(m[typeid(A)] == 0 && m[typeid(B)] == 1);
|
댓글남기기