1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <iostream> using namespace std; template<int i> void TemplatePrint() { cout << i << endl; } void FunctionPrint(int i) { cout << i << endl; } int main() { TemplatePrint<10>(); FunctionPrint(20); return 0; } | cs |
기능상으로 구현은 이해가 가는데
설계하려고 하면 왜 템플릿으로 변수를 넘겨줘야되는지 와닿지가 않아요.
템플릿은 컴파일 타임에 만들어지고 그냥 함수는 런타임에 넘어가요 - 164260의 휘발성 계정
아 런타임 실행시간이 더 중요한지 컴파일 실행시간이 더 중요한지에 따라 다른거군요.
그리고 아마 템플릿을 사용할경우 너무 많은 i가 생성해야 할시에는 메모리낭비가 예상되니 그럴경우는 자제해야되겠구요?
재귀하고 특수화로 연산한다 치면 템플릿 재귀 깊이 제한이 있고, 하드코드 해놓으면 제한은 안걸려도 바이너리 크기가 커지겠죠 - 164260의 휘발성 계정
아하 넵넵 감사합니다.
C++ Templates complete guide 책 한번 쭉 읽어보세요 - return 0;