Basic
- volatile : volatile 이론, volatile과 pipe-line, volatile과 spinlock
- define문에서 ##의 역할
- mutable
- friend
- const와 constexpr
- pointer 배열
- string
- mutex basic
- thread basci
- 위임 생성자(delegate constructor)
- 헷갈리는 부분 정리
Design-pattern
- 디자인패턴은 XXX패턴 -> 무슨 기능, OOO패턴 -> 무슨 기능 이런식으로 암기하는 것은 아무런 의미가 없다.
- 이런 패턴이 있고 이런식으로 코딩을 할 수 있다는 것을 이해하는 것이 중요하다. 패턴이름을 외우려고 노력하지 말자.
기본기
- Protected constructor : protected 생성/소멸
- Upcasting : 업캐스팅 예시
- abstract class, interface, coupling : 추상 클래스 및 인터페이스 제작방법
디자인 패턴 개요
- 디자인 패턴은 어디에 쓸까?
- Template Example(Application Framework)
- Strategy Example(Function)
- Strategy Pattern, Policy Base 비교
디자인 패턴
- Composite Pattern
- Decorator Pattern
- State Pattern
- Adaptor Pattern
- Bridge Pattern
- Facade Pattern
- Proxy Patter
- Factory Method
- Factory Pattern
- (Abstract)Factory Pattern
- Builder Pattern
- Container Pattern
- Visitor Pattern
- Observer Pattern
- Singleton Pattern
STL
여기부터는 iterator를 어떻게 쓰는지에 대한 내용 가볍게 읽어보자.
- iterator란?
- iterator - 1 : iterator 사용법 기초
- iterator - 2 : 컨테이너마다 지원하는 연산자
- iterator - 3 : advance function(list도 ++연산 쓰고싶은데??)
- iterator - 4 : iterator 만들기 basic
- iterator - 5 :
iterator_traits
만들기 -
iterator - 6 : back/front inserter
- bind
- thread - sync
- chrono
- chrono - duration
- chrono - ratio
template
기본기
- template이란?
- template instantiation : template생성시 기계어는 어떻게 생성될까?
- 명시적/암시적 instatitation
- 함수 템플릿(make_pair) 만들기
- (참고) template의 주소
- lazy instantiation
- 런타임 데이터 type출력
- template의 type-decution 주의사항
- (참고) 배열의 이름은 주소일까?
- (참고) template 전달인자 주소로 받기
기본문법
- class에 template 쓰기
- 복사생성자 template
- 함수 템플릿 호출시 주의사항
- typename 정의
- value_type 써보기
- 매개변수
- template specialization(template 지정)
type traits
- 런타임에 데이터형을 지정해보자(IfThenElse)
- couple을 만들고 자료형의 개수를 리턴
- template으로 factorial 만들기(template meta programming)
- template으로 런타임 포인터 타입 확인하기
- template으로 배열인지 확인하기
- 같은 데이터형이라도 포인터인지 아닌지에 따라 다른 template 생성
- 같은 데이터형이라도 포인터인지 아닌지에 따라 다른 template 생성 - 2
- remove_pointer 써보기, 만들어 보기
- template 함수의 리턴, 매개변수 타입 구하기
- C++에서 제공하는 표준 type_traits
Variadic Template
Template Design
- thin template : 템플릿을 효율적으로 구현해보자
- CRTP : 자녀클래스의 이름(정보)을 알고 싶을때
- 기타) STL Memory Allocator
- enable_if
- concept
Concurrency
- 1. thread - 1 :
getid(), sleep(), yield()
- 2. thread - 2 :
std::thread
,ref
- 3. promise & future
- 4. async
- 5. jthread
- 6. mutex
- 7. lock management
- 8. condition variable
- 9. semaphore
- 10. latch & barrier
- 11. atomic - 1
- 12. memory order
- 13. atomic - 2
- 14. parallel STL