반응형
Template Specialization
Template Specialization in C++ - GeeksforGeeks
템플릿을 이용하면 데이터 타입에 무관한 함수 또는 클래스를 만들 수 있습니다. 그런데 만약 특정 데이터 타입에 대해서만 다른 코드를 작성하고 싶으면 어떡해야 할까요?
예제 코드
함수 템플릿 예제
#include <iostream>
using namespace std;
template <class T>
void fun(T a)
{
cout << "The main template fun(): "
<< a << endl;
}
template<>
void fun(int a)
{
cout << "Specialized Template for int type: "
<< a << endl;
}
int main()
{
fun<char>('a');
fun<int>(10);
fun<float>(10.14);
}
클래스 템플릿 예제
#include <iostream>
using namespace std;
template <class T>
class Test
{
// Data memnbers of test
public:
Test()
{
// Initialization of data members
cout << "General template object \n";
}
// Other methods of Test
};
template <>
class Test <int>
{
public:
Test()
{
// Initialization of data members
cout << "Specialized template object\n";
}
};
int main()
{
Test<int> a;
Test<char> b;
Test<float> c;
return 0;
}
반응형
'💻 programming > c++' 카테고리의 다른 글
[c++] variadic template (가변 길이 템플릿) (0) | 2020.12.15 |
---|---|
[c++] functor (function object) (0) | 2020.12.15 |
[c++] template (0) | 2020.12.15 |
[c++] any (0) | 2020.12.15 |
[c++] optional (0) | 2020.12.15 |
댓글