본문 바로가기
반응형

template3

C++] template을 헤더파일에 정의하기. (선언만 하면 왜 안될까?) C++ 에는 다른 언어에 있는 template이라는 키워드가 존재합니다. template은 프로그램의 유연성을 제공해주죠. 코드 또한 간결해지고요. C++의 코드를 짜다보면 헤더파일에 클래스, 함수 등을 선언만하고 실제 구현은 다른 cpp파일에 정의하게 됩니다. 즉, 파일을 분리하는 것이죠. 이것의 장점은 코드 관리가 쉬워진다는 점입니다. 단점이 된다면 코드를 보는것이 다소 복잡해 질 수도 있지요. 그럼에도 불구하고 분할 컴파일을 많이하고 있습니다. 기능적인 부분들을 분리해서 정의하는 것이 관리에 있어서, 수정함에 있어서 좋은것은 사실이니 말이죠. 하지만 템플릿은 헤더파일에 선언만 해서는 동작하지 않습니다. 컴파일 시 애러 메시지를 띄워주죠. 예시를 보겠습니다. 1. template을 헤더파일에 선언. .. 2020. 9. 4.
C++] perfect forwarding 이란?(완벽 전달자) C++에는 템플릿이라는 항목이 있습니다. 템플릿은 타입을 정하지 않은 것으로 코드에 유연성을 제공하게 됩니다. 대표적으로 템플릿이 있는걸 접할 수 있는 라이브러리는 STL의 vector, map, queue 등이 있습니다. 이 템플릿엔 특이한점이 있는데 std::forward가 있다는 것입니다. 우선 템플릿에 대한 기본적인 설명을 해보겠습니다. 기본적인 template 함수 #include template void fnc(T n) { std::cout 2020. 8. 31.
C++ 템플릿, 템플릿 함수, 함수 템플릿의 특수화.... 코딩 공부 또는 어떠한 프로젝트로 인해 코딩을 하게될 경우 하는 기능은 동일하지만, 변수의 Type 때문에 함수를 여러게 만들 경우가 있습니다. 간단한 예로 정수의 사칙연산, 실수의 사칙연산이 있겠습니다. #include using namespace std; int Adder(int x, int y){ return x + y; } double Adder(double x, double y){ return x + y; } int main(void){ cout 2019. 5. 17.
728x90
반응형

스킨편집 -> html 편집에서