목차
1장 형식 연역
항목 1: 템플릿 형식 연역 규칙을 숙지하라
항목 2: auto의 형식 연역 규칙을 숙지하라
항목 3: decltype의 작동 방식을 숙지하라
항목 4: 연역된 형식을 파악하는 방법을 알아두라
2장 auto
항목 5: 명시적 형식 선언보다는 auto를 선호하라
항목 6: auto가 원치 않은 형식으로 연역될 때에는 명시적 형식의 초기치를 사용하라
3장 현대적 C++에 적응하기
항목 7: 객체 생성 시 괄호((와 중괄호({}를 구분하라
항목 8: 0과 NULL보다 nullptr를 선호하라
항목 9: typedef보다 별칭 선언을 선호하라
항목 10: 범위 없는 enum보다 범위 있는 enum을 선호하라
항목 11: 정의되지 않은 비공개 함수보다 삭제된 함수를 선호하라
항목 12: 재정의 함수들을 override로 선언하라
항목 13: iterator보다 const_iterator를 선호하라
항목 14: 예외를 방출하지 않을 함수는 noexcept로 선언하라
항목 15: 가능하면 항상 constexpr을 사용하라
항목 16: const 멤버 함수를 스레드에 안전하게 작성하라
항목 17: 특수 멤버 함수들의 자동 작성 조건을 숙지하라
4장 똑똑한 포인터
항목 18: 소유권 독점 자원의 관리에는 std::unique_ptr를 사용하라
항목 19: 소유권 공유 자원의 관리에는 std::shared_ptr를 사용하라
항목 20: std::shared_ptr처럼 작동하되 대상을 잃을 수도 있는 포인터가 필요하면 std::weak_ptr를 사용하라
항목 21: new를 직접 사용하는 것보다 std::make_unique와 std::make_shared를 선호하라
항목 22: Pimpl 관용구를 사용할 때에는 특수 멤버 함수들을 구현 파일에서 정의하라
5장 오른값 참조, 이동 의미론, 완벽 전달
항목 23: std::move와 std::forward를 숙지하라
출판사 서평
C++11과 C++14에 숙달하려면 새로 추가된 기능들(이를테면 auto 형식 선언, 이동 의미론, 람다 표현식, 동시성 지원 등에 익숙해지는 것으로는 부족하다. 사실 어려운 것은 그런 기능들을 효과적으로 사용하는 방법, 다시 말해서 그런 기능들을 정확하고, 효율적이고, 유지보수하기 좋고, 이식성을 갖춘 소프트웨어를 만드는 데 활용하는 방법을 배우는 것이다. 이 책은 C++11과 C++14를 이용해서, 즉 현대적인 C++을 이용해서 진정으로 훌륭한 소프트웨어를 작성하는 방법을 설명한다.
Effective Modern C++은 스...
C++11과 C++14에 숙달하려면 새로 추가된 기능들(이를테면 auto 형식 선언, 이동 의미론, 람다 표현식, 동시성 지원 등에 익숙해지는 것으로는 부족하다. 사실 어려운 것은 그런 기능들을 효과적으로 사용하는 방법, 다시 말해서 그런 기능들을 정확하고, 효율적이고, 유지보수하기 좋고, 이식성을 갖춘 소프트웨어를 만드는 데 활용하는 방법을 배우는 것이다. 이 책은 C++11과 C++14를 이용해서, 즉 현대적인 C++을 이용해서 진정으로 훌륭한 소프트웨어를 작성하는 방법을 설명한다.
Effective Modern C++은 스콧 마이어스의 이전 책들에서 검증된 지침 기반, 예제 주도적 형식을 따르되, 완전히 새로운 내용을 다룬다. 이 책은 모든 현대적 C++ 소프트웨어 개발자가 반드시 읽어야 할 책이다.
《 이 책에서 다루는 내용 》
ㆍ 중괄호 초기치, noexcept 명세, 완벽 전달, 똑똑한 포인터 생성 함수의 장단점
ㆍ std::move와 std::forward, 오른값 참조, 보편 참조 사이의 관계
ㆍ 명확하고 정확하며 효과적인 람다 표현식을 작성하는 기법들
ㆍ std::atomic과 volatile의 차이와 각각의 사용법 및 C++ 동시성 API와의 관계
ㆍ ‘구식’ C++(즉 C++98 프로그래밍에서의 모범 관행 중 현대적인 C++ 소프트웨어 개발에 맞게 고쳐야 할 것들