본문 바로가기
프로그래밍 언어/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은 정확한 타입 추출할 때 사용

반응형

댓글