CONTENTS
목차
읽음 표시는 직접 선택하며 자동 완료되지 않습니다.
- 01값 범주와 완벽 전달 - lvalue·rvalue·forwarding reference
lvalue/prvalue/xvalue, std::move 가 실제로 하는 일, 전달 참조와 std::forward, emplace 계열이 필요한 이유, 이동 후 객체 상태
- 02직접 만드는 RAII 타입 - 파일 핸들과 잠금 가드
자원 래퍼 설계, 복사 금지·이동 허용, noexcept 이동과 vector 재할당, unique_ptr 사용자 삭제자, scope guard
- 03템플릿 인자 추론과 오버로드 해석
함수 템플릿 추론 규칙, auto 와 decltype(auto), 클래스 템플릿 인자 추론(CTAD), 오버로드 우선순위, 흔한 추론 실패 메시지 읽기
- 04concepts 로 템플릿 제약 걸기 - 읽히는 오류 메시지
requires 절과 concept 정의, 표준 concept(std::integral, std::ranges::range), SFINAE 와 비교, 제약으로 오버로드 나누기
- 05컴파일 타임 계산 - constexpr·consteval·static_assert
constexpr 함수와 변수, consteval, if constexpr 로 분기, 컴파일 타임 표 만들기, static_assert 로 가정 고정
- 06ranges 와 views - 지연 파이프라인으로 데이터 거르기
views::filter/transform/take, 파이프 연산자, 뷰의 수명과 댕글링, ranges 알고리즘, 성능 특성
- 07optional·variant·expected 로 실패와 상태 표현하기
std::optional 반환, std::variant 와 std::visit 로 상태 기계, std::expected(C++23) 소개와 대안, 예외와의 선택 기준
- 08std::thread 와 jthread - 스레드 수명 관리
thread 생성·join·detach 함정, jthread 와 stop_token, 스레드에 인자 전달(참조 함정), 예외와 스레드
- 09뮤텍스와 조건 변수 - 스레드 안전 작업 큐 만들기
데이터 경쟁 재현, mutex·lock_guard·unique_lock·scoped_lock, 조건 변수와 가짜 깨움, 생산자·소비자 큐, -fsanitize=thread
- 10atomic 과 메모리 순서 - 잠금 없는 카운터의 조건
std::atomic 연산, memory_order 기본(seq_cst/acquire/release/relaxed) 직관, 거짓 공유(false sharing), 언제 atomic 대신 mutex 를 쓰나
- 11future·promise·async - 결과를 기다리는 방법
std::async 실행 정책, future.get 과 예외 전달, promise 로 신호 주기, 스레드 풀 개념, 작업 취소 설계
- 12성능을 위한 설계 - 메모리 배치·복사 줄이기·측정
값 의미론과 복사 비용 측정, reserve 와 재할당, 캐시 친화적 배치(구조체 배열 vs 배열 구조체), 간단한 벤치마크 방법과 최적화 착시
이 책은 Devin.KR 원고를 참조합니다. 원고의 원래 주소와 저작자 표기를 유지하며 같은 글을 다시 등록하지 않습니다. 수정된 원고는 읽기 화면에서 재검수 상태를 확인할 수 있습니다.