본문 바로가기
프로그래밍 언어/C++

[C++] decltype 키워드

by 까망 하르방 2025. 1. 2.
반응형

decltype 키워드

( ) 안의 표현식으로 타입 결정

함수 템플릿 등 만들 때 주로 사용

#include <cstdio>

int main()
{
    int arr[3] = { 0, 1, 2 };

    decltype(arr) x;

    x[0] = 100;
    x[1] = 200;
    x[2] = 300;

    for (auto v : x)
    {
        printf("%d\n", v);
    }
}

 

 

Q)  Auto 키워드와는 무슨 차이가 있을까?

auto 키워드와 유사해보이는데

모두 타입을 추론하거나 명시하는데 사용되지만

목적과 동작방식에는 차이가 있다.

#include <cstdio>

int main()
{
    int x[3] = {1, 2, 3};

    auto A = x; // int *A
    decltype(x) B; // int B[3]
}

 

 

•  auto 값을 기반으로 타입 추론

 decltype: 변수나 표현식에서 타입 추출

 

•  auto 키워드는 초기화 값이 반드시 필요하지만

 decltype은 초기화하지 않아도 사용 가능

 

• auto 키워드는 타입을 간결하게 표현할 때 사용한다면

 decltype은 정확한 타입 추출할 때 사용

반응형

'프로그래밍 언어 > C++' 카테고리의 다른 글

[C/C++] 함수 template  (0) 2025.01.11
[C/C++] 문자열 String  (0) 2025.01.10
[C++] 일관된 초기화 (uniform initialization)  (2) 2025.01.01
[C++] structure binding  (3) 2024.12.31
[C++] 디폴트 파라미터(default parameter)  (0) 2024.12.30

댓글