[C++] 변수의 타입 추론 - decltype(auto)

유빈·2025년 7월 24일
0

C++

목록 보기
11/12
post-thumbnail


🟦 decltype(auto)

  • 컴파일러에게 '표현식을 기반으로 정확한 타입을 추론하라'는 명령
  • auto보다 더 정확하고 정밀한 타입 추론 가능




auto vs decltype(auto)

키워드타입 추론 방식참조 유지 여부
auto값을 복사해서 타입 추론❌ 참조 무시
decltype(auto)표현식 그대로 타입 추론 (참조 포함)✅ 참조 유지




예제 1: 함수 반환값 추론

int x = 10;
int& getRef() { return x; }

auto a = getRef();           // int (참조 제거됨 → 복사)
decltype(auto) b = getRef(); // int& (참조 유지됨)
변수타입결과
aint복사본
bint&원본 참조함




예제 2: container 접근 시

vector<int> v = {1, 2, 3};

auto val = v[0];            // int (복사됨)
decltype(auto) ref = v[0];  // int& (참조 유지됨)

val = 100;     // 원본에 영향 없음
ref = 100;     // v[0]이 100으로 바뀜


profile
🌱

0개의 댓글