해결된 질문
작성
·
211
2
auto* test2 = e에서
e는 const char *인데
타입 추론 결과가 const char *이므로
최종적으론 (const char **)가 될 것 같았는데 그렇지 않은 이유가 궁금합니다.
답변 1
2
template과 auto에서 일어나는 자동 추론 규칙이 그렇게 되어 있습니다.
auto* test2 = e; 에서 auto는 일종의 조커 카드라고 생각하시면 됩니다.
e가 const char*타입일 때, auto 라는 '조커 카드'가 const char이 되면
const char + * = const char*
딱 아다리가 맞아 떨어질테니 그렇게 결정을 해줍니다.
템플릿은 워낙 난해한 부분이 많아서 가볍게만 다루고
언젠가 고급 C++ 시리즈에서 전문적으로 다룰 예정입니다.
그렇다면 위와 같은 경우에서 auto로 해도, auto *로 해도 결과는 같다는 건가요?