함수 순위가 어떻게 되나요?
글쓴이: helloc_ / 작성시간: 금, 2014/01/17 - 12:11오전
템플릿의 강의를 보다 이런글을 보고 질문을 드립니다
호출 순서에 규칙이 있기 때문입니다(최선에서 최악으로). 호출 순서는 다음과 같습니다.
전문화된 함수와 맞는지 검사한다.
템플릿 함수와 맞는지 검사한다.
일반 함수와 맞는지 검사한다.
한번 확인을 위해
#include <iostream> using namespace std; template< typename T1 > void func( T1 a ){ cout << "함수 템플릿" << endl; } template<> void func( int a ){ cout << "전문화 템플릿" << endl; } void func( int a ){ cout << "일반 함수" << endl; } int main(){ int a = 100; func( a ); return 0; }
이런 코드를 작성해서 실행했지만 일반함수가 먼저 호출이 되더군요...왜 그런 결과가 나오는지 이해가 가지 않아 질문 드립니다...
Forums:
템플릿 함수보다 일반 함수가 우선순위가
템플릿 함수보다 일반 함수가 우선순위가 높을겁니다.
만약에 올리신 코드에서 전문화된 템플릿 함수를 호출하고 싶으시면
처럼 호출하시면 됩니다.
아하! 감사합니다ㅎ
아하! 감사합니다ㅎ
댓글 달기