On this page
article
C++ Template Parameter
template parameter
- 종류
- type
- non-type
- 정수형 상수
- enum
- 포인터, 함수 포인터
- auto (cpp17)
- 실수형 상수 (cpp20)
- template
- 예시
template<typename T, int N, template<typename> class C> class object {}; int main() { object<int, 10, list> obj1; }
- default parameter
template<typename T1 = char, typename T2 = float>
- container adapter
기본안. container를 필요에 따라 바꿀 수 있음
template<typename T, typename C = std::deque<T>> // class stack { C c; public: ~ } int main() { stack<int, std::vector<int>> s2; stack<int> s2; }
개선안 (template template parameter)
template<typename T, template<typename, typename> class C = std::vector, // typename Ax = std::allocator<T> > class stack { C<T, Ax> c; public: ~ } int main() { stack<int> s1; stack<int, std::vector> s1; }
추가
- deque, vector같은 애들 두번째 인자로 default값이 있어서 template
class C로 해도 가능 - 그러면 사설 데이터 컨테이너도 넣을 수 있을 수 있다.
- deque, vector같은 애들 두번째 인자로 default값이 있어서 template