auto만 쓰면 참조와 top-level const가 사라지고 배열은 포인터로 붕괴합니다. 유지하려면 선언 형태에 의도를 적어야 합니다.
auto a = c_val;
int
auto r = ref_val;
auto p = arr;
int*
auto& r = c_val;
const int&
const auto& v = expr;
const T&