본문 바로가기

C++ templates The Complete Guide14

[C++] Templates in Practice References Ch9, C++ Templates The Complete Guide Contents The Inclusion Model Templates and inline Precompiled Headers Decoding the Error 템플릿 코드는 일반 코드와 약간 다릅니다. 어떤 측면에서는 매크로와 일반(non-template) 선언의 중간이라고 볼 수도 있습니다. 이번 포스팅에서는 템플릿의 기술적인 부분은 배제하고 실제 어떻게 사용할 수 있는지에 대해서 살펴보려고 합니다. 특히 전통적인 C++ 컴파일 시스템(compiler + linker) 측면에서 어떻게 템플릿 코드를 작성하고, 작성하면서 마주할 수 있는 에러 등에 대해서 살펴봅니다. The Inclusion Model 템플릿 소스 코.. 2023. 1. 5.
[C++] Value Categories (값 카테고리) References Appendix B, C++ Templates The Complete Guide https://en.cppreference.com/w/cpp/language/value_category https://www.scs.stanford.edu/~dm/blog/decltype.html Contents lvalues(좌측값) and rvalues(우측값) Value Categories Since C++11 Check Value Categories with decltype Reference Types 표현식(expressions)은 C++ 언어의 기본 토대이며, 연산을 표현하는 기본적은 메커니즘입니다. 모든 표현식에는 타입이 있으며, 이 타입은 표현식의 연산이 생성하는 값의 정적 타입(static.. 2023. 1. 3.
[C++] 템플릿에서 이동의미론과 enable_if<> References Ch6, C++ Templates The Complete Guide Contents Perfect Forwarding Special Member Function Templates std::enable_if C++11에서 도입된 중요한 특징 중 하나가 바로 이동의미론(move semantics) 입니다. 이를 통해 원본 객체 내의 리소스를 다른 객체로 복사하는 것이 아닌 이동시켜 복사 및 할당을 최적화할 수 있습니다. 이는 원본 객체의 내부 값이나 상태가 복사한 뒤 더 이상 필요하지 않을 때 사용할 수 있습니다. 이동의미론이 도입되면서 템플릿 디자인에 많은 영향을 미쳤는데, 제너릭 코드에서 이동의미론을 지원하기 위해 특별한 규칙들도 도입되었습니다. 이번 포스팅에서는 이에 대해서 살펴보도.. 2023. 1. 2.
[C++] Variadic Templates (가변 템플릿) References ch4, C++ Template The Complete Guide Contents Variadic Templates Fold Expressions Application of Variadic Templates Variadic Class Templates and Variadic Expressions C++11부터 템플릿에서도 가변 템플릿 인자를 받을 수 있는 파라미터를 사용할 수 있습니다. 임의의 타입을 갖는 임의의 수의 인자를 전달할 때 사용할 수 있습니다. Variadic Templates 정해지지 않은 수의 템플릿 인자를 템플릿 파라미터로 정의할 수 있는데, 이와 같은 기능의 템플릿을 가변 템플릿(variadic templates)라고 부릅니다. Example 예를 들어, 서로 다른.. 2022. 12. 31.