모던 C++ 프로그래밍 쿡북
도서명:모던 C++ 프로그래밍 쿡북
저자/출판사:마리우스,반실라/에이콘출판
쪽수:716쪽
출판일:2019-07-31
ISBN:9791161753348
목차
1장. 현대 핵심 언어 특징 배우기
__소개
__가능한 한 auto 사용하기
__타입 별칭 및 별칭 템플릿 생성
__균일한 초기화 이해하기
__비정적 멤버 초기화의 다양한 형식 이해하기
__객체 정렬 제어 및 쿼리
__범위가 지정된 열거형 사용하기
__가상 메소드에 override와 final 사용하기
__범위 기반 for 루프를 사용해 범위 반복하기
__사용자 정의 타입에 대한 범위 기반 for 루프 활성화
__암시적 변환을 피하기 위해 명시적 생성자 및 변환 연산자 사용하기
__정적 전역 대신 명명되지 않은 네임스페이스 사용하기
__심볼 버전 관리에 인라인 네임스페이스 사용하기
__구조적 바인딩을 사용해 다중 반환값 처리하기
2장. 숫자와 문자열로 작업하기
__소개
__숫자와 문자열 타입 간의 변환
__숫자 타입의 제한과 기타 속성
__의사 난수 생성
__의사 난수 생성기의 내부 상태의 모든 비트 초기화
__가공된 사용자 정의 리터럴 작성
__원시 사용자 정의 리터럴 작성
__원시 문자열 리터럴을 사용한 이스케이프 문자 방지
__문자열 헬퍼 라이브러리 생성
__정규 표현식을 사용해 문자열 포맷 확인하기
__정규 표현식을 사용해 문자열의 내용 파싱하기
__정규 표현식을 사용해 문자열의 내용 바꾸기
__상수 문자열 참조 대신 string_view 사용하기
3장. 함수
__소개
__디폴트 함수와 삭제된 함수들
__표준 알고리즘에서 람다 사용하기
__제네릭 람다 사용하기
__재귀 람다 작성하기
__가변의 인수를 가진 함수 템플릿 작성하기
__접힌 표현식을 사용해 가변 함수 템플릿 단순화하기
__고차 함수 맵과 폴드 구현하기
__함수를 고차 함수로 구성하기
__호출 가능한 모든 것을 통합해 호출하기
4장. 전처리기와 컴파일
__소개
__조건부로 소스 코드 컴파일하기
__전처리기 문자열화와 연결에 간접 패턴 사용
__static_assert로 컴파일 타임 어서션 검사 수행
__enable_if로 조건부로 클래스와 함수 컴파일하기
__constexpr if로 컴파일 시 분기 선택
__속성으로 컴파일러에 메타데이터 제공하기
5장. 표준 라이브러리 컨테이너와 알고리즘, 반복자
__소개
__벡터를 디폴트 컨테이너로 사용
__비트의 고정 크기 시퀀스에 비트셋 사용
__가변 크기의 비트 시퀀스에 벡터
사용
__범위 내의 요소 찾기
__범위 정렬
__범위 초기화
__범위에서 세트 연산 사용하기
__반복자를 사용해 컨테이너에 새 요소 삽입하기
__자신만의 임의 접근 반복자 작성하기
__비멤버 함수를 사용한 컨테이너 접근
6장. 범용 유틸리티
__소개
__chrono::duration으로 시간 간격 표현하기
__표준 시계로 함수 실행 시간 측정
__사용자 정의 타입에 대한 해시 값 생성
__std::any를 사용해 값을 저장
__std::optional을 사용해 옵션 값 저장
__타입 안전한 공용체로 std::variant 사용
__std::variant 방문
__프로그램이 정상적으로 종료될 때 호출할 함수 등록하기
__타입 특성을 사용한 타입의 속성 조회
__자신만의 타입 특성 작성하기
__std::conditional을 사용해 타입 선택하기
7장. 파일과 스트림 작업
__소개
__바이너리 파일에서 원시 데이터 읽기/쓰기
__바이너리 파일에서 객체 읽기/쓰기
__스트림에 로컬 설정 사용
__I/O 조작자를 사용해 스트림 출력 제어
__통화 I/O 조작자 사용
__시간 I/O 조작자 사용
__파일시스템 경로로 작업하기
__파일과 디렉터리의 생성, 복사, 삭제
__파일에서 내용 삭제
__기존 파일 또는 디렉터리의 속성 확인
__디렉터리의 내용 열거
__파일 찾기
8장. 스레딩과 동시성 활용
__소개
__스레드로 작업하기
__스레드 함수에서 예외 처리
__뮤텍스와 잠금을 사용해 공유 데이터에 대한 접근 동기화
__재귀 뮤텍스 사용 방지
__스레드 간 통보 전송
__프라미스와 퓨처를 사용해 스레드에서 값 반환
__함수를 비동기적으로 실행하기
__아토믹 타입 사용
__스레드로 병렬 맵과 폴드 구현하기
__태스크로 병렬 맵과 폴드 구현하기
9장. 견고성과 성능
__소개
__오류 처리에 예외 사용
__오류를 던지지 않는 함수에 noexcept 사용
__프로그램의 상수 정확성 보장
__컴파일 타임 상수 표현식 생성
__올바른 타입 캐스트 수행
__unique_ptr을 사용해 메모리 자원을 고유하게 소유
__shared_ptr을 사용한 메모리 자원 공유
__이동 시맨틱 구현
10장. 패턴과 관용어 구현
__소개
__팩토리 패턴에서 반복되는 if.else문 방지
__핌플 관용어 구현
__명명된 매개변수 관용어 구현
__비가상 인터페이스 관용어를 사용해 구현과 인터페이스 분리
__변호사-의뢰인 관용어 프렌드십 처리
__회귀 템플릿 패턴을 사용한 정적 다형성
__스레드 안전한 싱글톤 구현
11장. 테스트 프레임워크 탐색
__소개
__Boost.Test 시작하기
__Boost.Test로 테스트 작성하고 호출하기
__Boost.Test로 어서트하기
__Boost.Test에서 테스트 픽스처 사용하기
__Boost.Test로 출력 제어하기
__구글 테스트 시작하기
__구글 테스트로 테스트 작성하고 호출하기
__구글 테스트로 어서트하기
__구글 테스트에서 테스트 픽스처 사용하기
__구글 테스트로 출력 제어하기
__캐치 시작하기
__캐치로 테스트 작성하고 호출하기
__캐치로 어서트하기
__캐치로 출력 제어하기