이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
1장. 기초 쌓기 1.1 소개1.2 프로그램1.3 함수1.4 타입과 변수, 산술 연산1.5 범위와 수명1.6 상수1.7 포인터, 배열, 참조1.8 테스트1.9 하드웨어와의 매핑1.10 조언2장. 사용자 정의 타입 2.1 소개2.2 구조체2.3 클래스2.4 열거2.5 공용체2.6 조언3장 모듈성 3.1 소개3.2 분리 컴파일3.3 네임스페이스3.4 함수 인수와 반환값3.5 조언4장. 오류 처리 4.1 소개4.2 예외4.3 불변4.4 오류 처리 대안4.5 어설션4.6 조언5장. 클래스 5.1 소개5.2 구체 타입5.3 추상 타입5.4 가상 함수5.5 클래스 계층 구조5.6 조언6장. 필수 연산 6.1 소개6.2 복사와 이동6.3 자원 관리6.4 연산자 오버로딩6.5 전통적 연산6.6 사용자 정의 리터럴6.7 조언7장. 템플릿7.1 소개7.2 매개변수화 타입7.3 매개변수화 연산7.4 템플릿 메커니즘7.5 조언8장. 콘셉트와 제네릭 프로그래밍 8.1 소개8.2 콘셉트8.3 제네릭 프로그래밍8.4 가변 인자 템플릿8.5 템플릿 컴파일 모델8.6 조언9장. 라이브러리 훑어보기 9.1 소개9.2 표준 라이브러리 컴포넌트9.3 표준 라이브러리 구성9.4 조언10장. 문자열과 정규식 10.1 소개10.2 문자열10.3 문자열 뷰10.4 정규식10.5 조언11장. 입력과 출력11.1 소개11.2 출력11.3 입력11.4 I/O 상태11.5 사용자 정의 타입의 I/O11.6 출력 포맷팅11.7 스트림11.8 C 스타일 I/O11.9 파일 시스템11.10 조언12장. 컨테이너 12.1 소개12.2 vector12.3 list12.4 forward_list12.5 map12.6 unordered_map12.7 할당자12.8 컨테이너 훑어보기12.9 조언13장. 알고리듬 13.1 소개13.2 반복자 사용13.3 반복자 타입13.4 프레디킷 사용13.5 알고리듬 개요13.6 병렬 알고리듬 13.7 조언14장. 범위 14.1 소개14.2 뷰14.3 생성자14.4 파이프라인14.5 콘셉트 개요14.6 조언15장. 포인터와 컨테이너 15.1 소개15.2 포인터15.3 컨테이너15.4 대안15.5 조언16장. 유틸리티 16.1 소개16.2 시간16.3 함수 조정16.4 타입 함수16.5 source_location16.6 move()와 forward()16.7 비트 조작16.8 프로그램 종료16.9 조언17장. 수 17.1 소개17.2 수학 함수17.3 수 알고리듬17.4 복소수17.5 난수17.6 벡터 산술17.7 수 제약17.8 타입 에일리어스17.9 수학 상수17.10 조언18장. 동시 실행 18.1 소개18.2 태스크와 스레드18.3 데이터 공유18.4 이벤트 대기18.5 태스크 커뮤니케이션18.6 코루틴18.7 조언19장. 역사적 배경과 호환성 19.1 역사19.2 C++ 기능 진화19.3 C/C++ 호환성19.4 참고문헌19.5 조언부록. std 모듈
|
Bjarne Stroustrup
심지현의 다른 상품
|
◈ 지은이의 말 ◈C++가 완전히 달라졌다. C++98이나 C++11에 비해 아이디어를 더 명쾌하고 간단하게 그리고 직관적으로 구현해낼 수 있게 됐다. 컴파일러도 더 빠르고 더 정확하게 결과 프로그램을 생성해낸다.이 책은 현재 ISO C++ 표준인 C++20 정의를 기준으로 삼아 C++ 주요 공급자가 구현한 C++를 전반적으로 살펴본다. 또한 C++23까지 표준으로 채택될 예정은 없으나 빈번하게 쓰는 라이브러리 컴포넌트도 소개한다.다른 최신 언어와 마찬가지로 C++ 역시 규모가 매우 크므로 효과적으로 사용하기 위해서는 아주 다양한 라이브러리가 필요하다. 이 얇은 책은 이미 C++에 익숙한 프로그래머가 모던 C++ 구성 요소를 배우기에 알맞다. 주요 언어 기능을 대부분 소개하며 주요 표준 라이브러리 컴포넌트도 다룬다. 하루 이틀이면 읽겠으나 훌륭한 C++ 코드를 작성하기에는 턱없이 부족하다. 완벽하게 설명하기보다는 개략적인 내용과 꼭 필요한 예제만을 제공해 프로그래머에게 시작점을 제공하고자 한다.이 책은 프로그래밍 경험이 충분하다고 가정한다. 아니라면 『Programming: Principles and Practice Using C++, Second edition 한국어판』(에이콘, 2015) 같은 책부터 읽어보기 바란다. 프로그래밍 경험이 있더라도 사용했던 언어나 개발했던 애플리케이션이 이 책에서 소개할 C++ 방식과 상당히 다를 수 있다.코펜하겐이나 뉴욕 같은 도시를 관광한다고 해보자. 단체 여행이라면 단 몇 시간 만에 도시의 주요 관광지를 돌아다니며 뒷이야기를 들은 후 다음 장소까지 추천받는다. 이렇게 돌아다녀서는 그 도시에 대해 전혀 알 수 없다. 보고 들은 것이 오롯이 내 것이 되지 않는다.어떤 이야기는 너무 기이해서 아예 믿어지지도 않는다. 그 도시의 삶을 지배하는 형식적 규칙과 비형식적 규칙을 도무지 알 도리가 없다. 제대로 알려면 몇 년은 살아야 한다. 하지만 약간의 운이 따라 준다면 전체적인 설명을 간략하게 듣게 될지도 모른다. 그럼 그 도시의 무엇이 특별한지, 어떤 부분이 흥미로운지 알게 된다. 이렇게 투어를 마치면 그제서야 진정한 탐험이 시작된다.이 책에서 제공할 투어는 객체지향과 제네릭 프로그래밍 같은 프로그래밍 스타일을 지원하는 C++ 언어 기능을 소개한다. 언어 기능마다 매번 자세한 참조 매뉴얼을 제공하진 않는다. 훌륭한 교재가 늘 그러하듯이 되도록이면 기능을 사용하기 전에 설명부터 하겠지만 간혹 불가능할 수 있고 모든 독자가 책을 순차적으로 읽지도 않는다. 독자가 어느 정도 기술적 숙련도를 갖췄다고 가정하겠다. 그러니 필요할 때마다 교차 참조나 색인을 활용하기 바란다.같은 맥락에서 이 투어는 철저한 설명 대신 예제 관점에서 표준 라이브러리를 설명한다. 필요하다면 자료를 추가로 찾아보자. ISO 표준에서 제공하는 기능은 C++ 에코시스템의 극히 일부다(예를 들어 라이브러리, 빌드 시스템, 분석 도구, 개발 환경 등). (품질은 제각각이지만) 온라인상에는 수많은 자료가 존재한다. CppCon이나 Meeting C++ 같은 콘퍼런스에서 어렵지 않게 유용한 튜토리얼과 소개 동영상을 찾을 수 있다. ISO C++ 표준에서 제공하는 언어와 라이브러리를 기술적으로 자세히 살피려면 Cppreference를 읽어보자. 표준 라이브러리 함수나 클래스가 나올 때 정의를 찾아보기 쉽고, 설명서를 읽다 보면 관련 기능이 많이 나온다.이 투어는 C++를 층층이 쌓인 케이크 대신 통합된 전체로 바라본다. 그래서 C나 C++98, 혹은 그 이후의 ISO 표준에 소개된 언어 기능은 거의 다루지 않는다. 이러한 정보는 19장에 나온다(역사적 배경과 호환성). 목표는 최대한 기초에 집중하면서 간략하게 설명하는 것이지만 모듈(3.2.2절), 콘셉트(8.2절), 코루틴(18.6절) 같은 새로운 기능을 신나게 소개하고 싶은 유혹을 완전히 떨치지는 못했다. 최신 개발 방식을 따르려는 시도 역시 과거의 C++ 버전에 익숙한 많은 독자의 호기심을 충족시킬 것이다.◈ 옮긴이의 말 ◈프로그래밍 언어는 끝을 모르고 진화한다. 특히 C++처럼 거대한 언어는 그 속도와 규모를 따라잡기가 결코 쉽지 않다. 바쁜 일상 속에서 프로그래머는 새로 나온 버전과 기능을 익히느라 늘 고달프다. 이러한 고민을 들어주기라도 하듯이 C++의 창시자 비야네 스트롭스트룹은 이 책을 통해 변화하는 C++ 버전 속에서 어떤 점을 꼭 알고 넘어가야 하는지 간결하고 정확하게 짚어준다. 이 책 한 권으로 C++을 완벽히 숙달할 순 없어도 최소한 어디서부터 시작해야 하는지 알 수 있다. 위에 인용한 비야네 스트롭스트룹의 말처럼 간단하게 끝낼 일을 굳이 어렵게 돌아갈 필요는 없다.저자는 단순히 기능을 나열하는 데서 멈추지 않는다. 여러 가지 개념을 연계하고, 어떤 상황에서 어떤 요소가 어떻게 쓰이는지 이해하기 쉬운 예제를 들어 설명한다. 적재적소에서 알맞은 표준 라이브러리를 소개하고, 참고하면 좋을 내용도 빠뜨리지 않는다. 독자라면 아무리 좋은 기능이라도 어떻게 조합하고 활용하느냐가 프로그램의 품질을 좌우한다는 사실을 익히 알고 있을 것이다. 훌륭한 유스 케이스를 많이 알아둘수록 코드 수준은 높아지기 마련이니 저자가 고심해 만든 예제를 가볍게 지나치지 말자.C++는 C++20이 등장하며 큰 변화를 맞이했다. 무엇보다 사용자의 의도를 보다 직관적으로 반영할 수 있는 여러 요소가 대거 추가됐다. 모듈, 콘셉트, 코루틴이 대표적이다. 저자는 C++를 구성하는 기본 요소인 타입, 클래스, 연산, 템플릿, 컨테이너, 예외, 입출력 등을 각 장의 주제로 삼아 기초를 탄탄히 세움과 동시에 C++에 새로 추가된 요소들을 제네릭 프로그래밍과 협력적 멀티태스킹 같은 최신 개발 방식과 맞물려 설명한다. C++20을 기준으로 삼았으나 C++23에 담길 내용도 넌지시 내비친다. C++ 위원회에서 활동했던 경험을 바탕으로 현재 진행 중인 프로젝트를 간간이 언급하며 앞으로를 대비할 수 있게 돕는다.시간이 촉박하다면 일단 차례부터 읽어보자. 한눈에 쉽게 들어오도록 구성된 차례가 원하는 방향과 목적지로 안내할 것이다. 저자가 아무 까닭 없이 제목을 『Tour of C++』로 지었을 리 없다. C++라는 세계를 즐겁게 여행하며 좀 더 쉽게 C++를 익히는 계기가 되기를 바란다.
|