반응형
형식 연역이 일어나는 경우는 다음의 경우입니다.
C++98 : template만 존재
C++11 : auto, decltype 추가
C++14 : auto와 decltype를 사용할 수 있는 문맥 확장, decltype(auto)
[C++] decltype 과 auto 참고해 주세요.
형식 연역의 범위가 증가한 덕분에 자명하거나 이미 언급된 형식들을 여러 번 일일이 지정해야하는 경우가 크게 줄었습니다. 코드의 한 곳만 수정하면 그 변화가 형식 연역을 통해 다른 장소들로 자동으로 전파됩니다. 그러나 코드의 의미를 추론하기는 좀 더 어려워졌습니다. 컴파일러가 연역하는 형식이 독자가 언뜻 보고 추측하는 것과 다른 경우가 있기 때문입니다. 형식 연역이 일어나는 방식을 확실히 이해해야야 효과적인 프로그래밍을 할 수 있습니다.
저는 deduction을 연역이 아니라 추론으로 쓰고 싶지만 책에서 연역이라고 하였기에 그대로 연역이라 부르겠습니다.
항목 4의 방식으로 형식 연역된 결과를 파악할 수 있는 도구가 있지만 도구일 뿐입니다. 항목1~3의 형식 연역 규칙을 숙지하는 것이 중요합니다.
'프로그래밍 일반 > C++ 프로그래밍' 카테고리의 다른 글
[C++] Online C++ 컴파일러 (0) | 2020.08.17 |
---|---|
[C++] decltype 과 auto (0) | 2020.08.17 |
[C++] 문자열 리터럴이 lvalue인 이유 (0) | 2020.08.15 |
C++ Type Category (0) | 2020.08.15 |
C++, 어떻게 효과적으로 Vector를 사용하는가? (0) | 2020.07.13 |