이 책은 C++ 언어와 표준 라이브러리인 STL이 결합한 코드를 제공해 C++17에서 추가된 기능 대부분을 활용하는 방법을 설명한다. 게다가 가치 있는 설명으로 가능한 한 많은 STL 기능을 사용한다.
C++는 이처럼 훌륭하고 강력한 언어다. 단순한 상위 레벨 인터페이스로 복잡한 해결책을 숨겨주지만, 동시에 높은 성능과 낮은 부하가 문제 되면 하위 레벨 코드를 작성해야 한다. ISO C++ 표준 위원회는 C++ 표준을 향상시키기 위해 열심히 노력한다. C++11과 C++14에서 C++17까지 C++에 훌륭한 많은 기능이 추가됐다.
현재 C++는 세련된 표준 데이터 구조체를 위한 언어적 기능과 표준 라이브러리 및 알고리즘, 자동 리소스 관리 포인터, 람다 표현식, 상수 표현식, 동시성 프로그래밍을 위한 편리한 스레드 제어, 정규 표현식, 난수 생성기, 예외 처리, 가변 템플릿, 사용자 정의 리터럴, 간편한 파일 시스템 순회 등 많은 기능을 제공한다. C++의 엄청난 기능들은 소프트웨어 산업의 전 분야에서 높은 품질과 성능의 소프트웨어를 구현하는 데 이상적인 다용도의 언어가 되게 한다.
그러나 많은 C++ 프로그래머가 C++ 언어는 열심히 배우지만, 표준 라이브러리인 STL은 그보다 뒤로 미룬다. STL의 도움 없이 C++ 언어를 사용하면 클래스를 사용하기는 하지만 표준 라이브러리가 C처럼 보이는 프로그램이 된다. 21세기의 현대 프로그램이 어떻게 보여야 한다는 게 아니다. C++를 사용하는 데 장점을 절반만 사용하기 때문에 안타까울 따름이다.
비야네 스트롭스트룹(Bjarne Stroustrup)은 『The C++ Programming Language』 중 C++11 편집본에서 다음과 같이 말했다. "해당 라이브러리와 언어의 기능은 소프트웨어 품질을 높이는 프로그래밍 기술을 지원하기 위해 존재한다는 사실을 기억하자. 이는 특정 문제를 해결하기 위해 상대적으로 고립돼 개별적으로 사용되는 대신에 빌딩의 벽돌처럼 결합해서 사용돼야 함을 뜻한다."
이 말은 이 책에서 무엇을 다루게 되는지 정확히 알려준다. 이 책의 모든 과정은 가능한 한 실제 문제와 밀접하게 설계됐으며, STL 외에는 외부 라이브러리에 의존하지 않는다. 그래서 복잡한 설정 작업 없이도 간단하게 다룰 수 있다. 해당 과정들을 통해 독자들이 실제로 영감을 얻길 기대한다. 훌륭한 프로그래밍 언어로 상위 레벨 문제를 해결하기 위해 근사한 표준 빌딩 블록이 되도록 찾아보자.