가티있는블로그

[C++] template

2021. 7. 22. 13:59 | 프로그래밍/C++

아래 코드는 template의 기본

T 대신에 다른 것도 사용가능 하지만 관례상 T를 많이 사용한다.

 

template parameter

call parameter

 

template<typename T>
T sqare(T a)
{
	return a*a;
}

int main()
{
	square<int>(3);
	square<double>(3.3);
    
	square(3); // 명시하지않으면 컴파일러가 추론한다
	square(3.3);
}

 

템플릿은 함수를 만드는 틀로 컴파일러가 컴파일 시간에 필요한 타입의 함수를 생성하게 된다.

함수가 생성되는 과정을 '템플릿 인스턴스화' 라고한다.

 

구조체도 템플릿으로 만들 수 있다.

C++17 부터는 생성자가 있으면 템플릿 파라미터 전달을 생략할 수 있다.

template<typename T>
struct Pont
{
	T x;
	T y;
};

int main()
{
	Point<int> pt;

	pt.x = 1;
	pt.y = 1;

}

 

 

 

'프로그래밍 > C++' 카테고리의 다른 글

[C++] constexpr  (0) 2021.07.25
[C++] 후위 반환 타입  (0) 2021.07.25
[C++] structured binding  (0) 2021.07.21
[C++] typedef, using  (0) 2021.07.19
[C++] namespace  (0) 2021.07.19