참조 여부 선택
복사할 값이면 auto, 원본을 바꿀 값이면 auto&, 읽기만 할 큰 객체면 const auto&를 쓴다.
auto는 초기화 식에서 타입을 추론한다. 읽는 사람이 소유권, 참조, const, narrowing 여부를 놓치지 않을 때만 코드가 더 좋아진다.
복사할 값이면 auto, 원본을 바꿀 값이면 auto&, 읽기만 할 큰 객체면 const auto&를 쓴다.
프록시 타입, initializer_list, signed/unsigned 변환처럼 의도와 다른 추론을 점검한다.
반환 타입이 의미를 설명하는 도메인 객체라면 명시 타입이 더 읽기 쉽다.
for (const auto& user : users) {
render(user.name());
}
for (auto& score : scores) {
score.normalize();
}