auto 적용 위치
반복자, 람다, 복잡한 반환 타입처럼 타입명이 길거나 쓸 수 없는 곳에서 가독성이 좋아집니다.
iterator / lambdaauto는 짧게 쓰는 문법이 아니라, 타입 추론 결과가 의도와 맞을 때 쓰는 도구입니다.
반복자, 람다, 복잡한 반환 타입처럼 타입명이 길거나 쓸 수 없는 곳에서 가독성이 좋아집니다.
iterator / lambdaauto value는 참조와 top-level const를 기본적으로 떨어뜨리므로 복사가 생길 수 있습니다.
decay 규칙원본을 바꾸거나 복사를 피하려면 auto&, 읽기 전용 참조면 const auto&를 씁니다.
auto& / const auto&int, double처럼 타입명이 짧거나 리터럴 폭이 중요한 값은 직접 쓰는 편이 낫습니다.
explicit typeauto 추론 확인: 타입 이름이 길거나 람다처럼 직접 쓸 수 없을 때 auto가 선명합니다. 숫자 리터럴, 참조 보존, const 유지가 중요하면 선언 형태를 명시적으로 고릅니다.