STL - 4 (함수 템플릿)

Youngmin Choi·2021년 6월 14일
0

STL

목록 보기
4/34
post-thumbnail

Q. 이전 글(STL - 3) 마지막 부분을 해결할 수 있는 방법은?

  • 함수 템플릿의 전문화 라는 것이 있다!

위 [Code1] 실행 결과는 아래처럼 나온다.

이전 글에서 말했듯이 컴파일러는 프로그래머의 생각을 완전히 이해하지 않는다. (S.T.U.P.I.D)



Q. 만약 Max(10.1, 20.4)를 호출한다면 Max(T,T)가 호출될까? 아니면 Max(double, double)이 호출될까?

정답은

Max<const double& a, const double& b> 전문화 버전 사용

왜애애애?? (개발자니까 항상 의문 갖는 습관을 기르자!)

  • 호출 순서에 규칙이 있기 때문이다!

1. '전문화된 함수' 와 맞는지 검사한다.

2. '템플릿 함수' 와 맞는지 검사한다.

3. '일반 함수' 와 맞는지 검사한다.

위 순서를 잘 기억하고, '전문화 함수'를 만들도록 하자!
안그러면 힘든 버그를 만들 수 있다..

profile
Always, Continually, In all circumstance

0개의 댓글