C++38 auto 형식 연역 규칙 템플릿 형식 연역과 auto 형식 연역 사이에는 직접적인 대응 관계가 존재한다. template void f(ParamType param); f(expr); auto x = 27;// x의 형식 지정자는 auto const auto cs = x;// x의 형식 지정자는 const auto const auto& rx = x;// x의 형식 지정자는 const auto& x와 cx, rx의 형식들을 연역할 때, 컴파일러는 선언마다 템플릿 함수 하나와 해당 초기화 표현식으로 템플릿 함수를 호출하는 구문이 존재하는 것처럼 행동한다. template void func_for_x(T param);// x의 형식을 연역하기위한 개념적인 템플릿 func_for_x(27);// 개념적인 호출 : param에 대해 연역된.. 2020. 6. 24. 템플릿 형식 연역 규칙 auto : 템플릿에 대한 형식 영역을 기반으로 작동 - 기본적인 함수 템플릿의 선언 template void f(ParamType param); f(expr); 이러한 경우, 컴파일 시간에 컴파일러는 expr을 이용해 T에 대한 형식과 ParamType에 대한 2가지 형식을 연역하게 된다. 예를들어 template void f(const T& param);// ParamType 은 const T& int x = 0; f(x); 이 경우 T는 int로 연역되지만 ParamType은 const int&로 연역된다. T에 대해 연역된 형식은 expr의 형식에 의존할 뿐만 아니라 ParamType의 형태에도 의존하게 되며, 총 세가지 종류로 나뉜다. 첫번째, ParamType이 포인터 또는 참조 형식이지만 보.. 2020. 6. 23. 이전 1 ··· 4 5 6 7 다음