C++ Templ v2
과정 개요
C++의 Template 기술은 C++ 에서 가장 신기하고, 재미있고, 깊이있는 분야 입니다. C++로 만들어진 다양한 라이브러리 안에는 Template 을 사용한 고급 코드를 많이 볼수 있습니다. 하지만, Template 은 일반 개발자가 아닌 라이브러리 설계자들이 널리 사용하는 기술이기 때문에, 대부분의 C++ 교육에서는 Template 의 개념 정도만 다루고 있습니다. 그래서, 오픈소스에서 볼수 있는 다양한 고급 기법을 정확히 이해하기는 어려움이 있습니다. 또한, C++의 표준 라이브러리인 STL을 깊이 있게 이해 하기 위해서도 Template 기술은 필수입니다. 본 과정은 C++언어의 Template 분야에 대한 다양한 문법과 기법을 배우는 과정입니다.
본 과정에서는 다음과 같은 내용을 배울수 있습니다.
1. C++ Template과 관련된 다양한 기본/고급 문법을 배우게 됩니다.
2. 문법 뿐 아니라 Traits, Lazy Instantiation, Type Selection, declval 등 다양한 기법을 배우게 됩니다.
3. SFINAE, enable_if, IfThenElse, Member Detect 등 Template 관련 다양한 C++ IDioms 을 배우게 됩니다.
4. CRTP, Thin Template, Policy-Base Design, rebind 등 Template 관련 디자인 기법을 배우게 됩니다.
5. C++98/03 뿐 아니라 C++11/14 그리고 C++17/20에서 추가되는 최신 내용도 배우게 됩니다.
과정의 세부 내용은 “CURRICULUM” 탭을 참고하시기 바랍니다.
수강 참고 사항
본 과정에서는 C++ 기본 문법은 다루지 않습니다. C++ 기본 문법을 이해하고 계신 분만 수강하시기 바랍니다. C++ 기본 문법을 잘 모르시는 분은 “C++ Programming Basic” 과정을 수강하시기 바랍니다.
Course Curriculum
Section 0: Orientation | |||
CPP_실습환경안내 | 00:14:11 | ||
CPP_INSTALL COMPILER | 00:19:12 | ||
USING_STD_PRINT | 00:05:37 | ||
Section 1. Template Basic | |||
template_v2_intro | 00:28:58 | ||
template_v2_function_template | FREE | 00:16:23 | |
template_v2_class_template | 00:51:23 | ||
template_v2_variable template, using template | 00:10:18 | ||
Section 2. More Than Basic | |||
template_v2_dependent name | 00:17:00 | ||
template_v2_template parameter | 00:30:54 | ||
template_v2_type deduction | 00:00:00 | ||
template_v2_template instantiation | 00:08:00 | ||
Section 3. Specialization | |||
template_v2_specialization #1 | 00:33:15 | ||
template_v2_specialization #2 | 00:07:17 | ||
Section 4. Type Traits | |||
template_v2_type traits | 00:18:04 | ||
template_v2_integral constant | 00:40:29 | ||
template_v2_type transformation | 00:16:25 | ||
Section 5. Concept | |||
template_v2_cocept & requires expression | 00:00:00 | ||
template_v2_cocept & requires clauses | 00:00:00 | ||
Section 6. Variadic Template | |||
template_v2_variadic template | 00:29:41 | ||
template_v2_fold expression | 00:00:00 | ||
template_v2_variadic template example | 00:00:00 | ||
template_v2_make tuple | 00:17:40 | ||
template_v2_integer_sequence | 00:00:00 | ||
Section 7. Template Design | |||
template_v2_CRTP | 00:24:39 | ||
template_v2_SFINAE & std::enable_if | 00:26:38 |