구체화
-
[Template] 템플릿 구체화개발/C·C++ 2021. 7. 5. 04:19
STL 컨테이너를 보면 선언과 정의가 분리되어 있지 않습니다. 클래스는 선언부와 정의부를 나누는 경우가 조금 더 일반적일 텐데요. 일반화 프로그래밍이라는 템플릿 라이브리리는 일반적인 방법을 따르지 않는 것처럼 보입니다. 라이브러리를 만드는 사람들이 뭘 몰라서 그런 것은 아닐 테니까, 그럴 만한 이유가 있을 겁니다. 그 이유를 파악해 봅시다. #include int main() { std::vector vec; for (int i = 0; i < 5; ++i) vec.push_back(i); } 간단한 벡터 예제입니다. 연산자를 통해 int형 데이터를 담을 수 있는 컨테이너를 만들어 반복문을 이용해 0부터 4까지 넣었습니다. std::vector을 명시적 구체화라고 합니다. 함수 템플릿에 넣는 인수를 통해..