auto deduction

auto는 초기화 식과 선언 형태를 함께 읽는다

auto가 타입을 숨기는 것이 아니라, 오른쪽 값과 왼쪽 선언 형태를 보고 컴파일 시점에 정확한 타입을 정합니다.

선언 형태

auto, auto&, const auto&

복사할지, 참조를 유지할지, const를 붙일지를 정합니다.

초기화 식

10, name, v.begin()

컴파일러가 실제 타입을 추론할 기준입니다.

추론 결과

int, std::string, iterator

런타임 기능이 아니라 컴파일 시점 타입 결정입니다.

auto i = 10; int
auto d = 3.14; double
auto s = "Hello"; const char*
auto it = v.begin(); iterator
핵심: auto를 읽을 때는 “오른쪽 값이 무엇인가”와 “왼쪽에 &/const가 있는가”를 같이 봅니다.