책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9788960770676
· 쪽수 : 552쪽
· 출판일 : 2008-12-16
책 소개
목차
1장 들어가며
1.1 책을 읽기 전에 독자가 알아야 할 것
1.2 이 책의 구성
1.3 이 책을 읽는 방법
1.4 프로그래밍 방식에 대한 몇 가지 언급
1.5 표준과 실제
1.6 예제 코드와 부가 설명
1.7 피드백
1부 템플릿 기본
2장 함수 템플릿
2.1 함수 템플릿이란
2.1.2 템플릿 사용
2.2 인자 추론
2.3 템플릿 매개변수
2.4 오버로딩 함수 템플릿
2.5 요약
3장 클래스 템플릿
3.1 클래스 템플릿 Stack의 구현
3.1.1 클래스 템플릿의 선언
3.1.2 멤버 함수의 구현
3.2 클래스 템플릿 Stack의 사용
3.3 클래스 템플릿의 특수화
3.4 부분 특수화
3.5 기본 템플릿 인자
3.6 요약
4장 데이터형이 아닌 템플릿 매개변수
4.1 데이터형이 아닌 클래스 템플릿 매개변수
4.2 데이터형이 아닌 함수 템플릿 매개변수
4.3 데이터형이 아닌 템플릿 매개변수에 대한 제약
4.4 요약
5장 복잡한 기본
5.1 키워드 typename
5.2 this-> 사용
5.3 멤버 템플릿
5.4 템플릿 템플릿 매개변수
5.5 0 초기화
5.6 함수 템플릿에 문자열 리터럴을 인자로 사용
5.7 요약
6장 템플릿 실제 사용
6.1 포함 모델
6.1.1 링커 오류
6.1.2 헤더 파일에 있는 템플릿
6.2 명시적 인스턴스화
6.2.1 명시적 인스턴스화의 예제
6.2.2 포함 모델과 명시적 인스턴스화 결합
6.3 분리 모델
6.3.1 키워드 export
6.3.2 분리 모델의 한계
6.3.3 분리 모델에 대한 대비
6.4 템플릿과 인라인
6.5 전컴파일된 헤더
6.6 디버깅 템플릿
6.6.1 긴 오류 메시지 해석
6.6.2 얕은 인스턴스화
6.6.3 긴 기호
6.6.4 추적자
6.6.5 오라클
6.6.6 원형
6.7 정리
7장 기본 템플릿 용어
7.1 "클래스 템플릿"과 "템플릿 클래스"
7.2 인스턴스화와 특수화
7.3 선언과 정의
7.4 단정의 법칙
7.5 템플릿 인자와 템플릿 매개변수
2부 템플릿 상세 설명
8장 템플릿 기초 원리의 깊은 이해
8.1 매개변수화된 선언
8.1.1 가상 멤버 함수
8.1.2 템플릿의 링크
8.1.3 기본 템플릿
8.2 템플릿 매개변수
8.2.1 데이터형 매개변수
8.2.2 데이터형이 아닌 매개변수
8.2.3 템플릿 템플릿 매개변수
8.2.4 기본 템플릿 인자
8.3 템플릿 인자
8.3.1 함수 템플릿 인자
8.3.2 데이터형 인자
8.3.3 데이터형이 아닌 인자
8.3.4 템플릿 템플릿 인자
8.3.5 동일
8.4 프렌드
8.4.1 프렌드 함수
8.4.2 프렌드 템플릿
8.5 정리
9장 템플릿에서의 이름
9.1 이름 분류학
9.2 이름 룩업
9.2.1 인자 종속 룩업
9.2.2 프렌드 이름 주입
9.2.3 주입된 클래스 이름
9.3 템플릿 파싱
9.3.1 템플릿을 쓰지 않을 때의 문맥 민감성
9.3.2 데이터형의 종속 이름
9.3.3 템플릿의 종속 이름
9.3.4 using 선언에서 종속 이름
9.3.5 ADL과 명시적 템플릿 인자
9.4 파생과 클래스 템플릿
9.4.1 종속되지 않은 기본 클래스
9.4.2 종속적인 기본 클래스
9.5 정리
10장 인스턴스화
10.1 주문형 인스턴스화
10.2 게으른 인스턴스화
10.3 C++ 인스턴스화 모델
10.3.4 두 단계 룩업
10.3.2 인스턴스화 지점
10.3.3 포함과 분리 모델
10.3.4 여러 번역 단위에 걸친 룩업
10.3.5 예제
10.4 구현 방식
10.4.1 근시안적인 인스턴스화
10.4.2 질의 인스턴스화
10.4.3 반복된 인스턴스화
10.5 명시적 인스턴스화
10.6 정리
11장 템플릿 인자 추론
11.1 추론 과정
11.2 추론된 문맥
11.3 특별 추론 상황
11.4 허용되는 인자 변환
11.5 클래스 템플릿 매개변수
11.6 기본 호출 인자
11.7 바튼-넥만 트릭
11.8 정리
12장 특수화와 오버로딩
12.1 "일반적인 코드"가 별로 좋지 않을 때
12.1.1 보이지 않는 커스터마이징
12.1.2 의미 구조 투명성
12.2 함수 템플릿 오버로딩
12.2.1 서명
12.2.2 오버로딩된 함수 템플릿의 부분 정렬
12.2.3 공식 정렬 법칙
12.2.4 템플릿과 템플릿이 아닌 것
12.3 명시적 특수화
12.3.1 전체 클래스 템플릿 특수화
12.3.2 전체 함수 템플릿 특수화
12.3.3 전체 멤버 특수화
12.4 부분 클래스 템플릿 특수화
12.5 정리
13장 앞으로 나아갈 방향
13.1 꺾쇠 해킹
13.2 완화된 typename 법칙
13.3 기본 함수 템플릿 인자
13.4 문자열 리터럴과 부동소수점 템플릿 인자
13.5 템플릿 템플릿 매개변수의 일치 완화
13.6 typedef 템플릿
13.7 함수 템플릿의 부분 특수화
13.8 typeof 연산자
13.9 이름 붙여진 템플릿 인자
13.10 정적 속성
13.11 맞춤형 인스턴스화 진단
13.12 클래스 템플릿 오버로딩
13.13 목록 매개변수
13.14 레이아웃 제어
13.15 초기화 추론
13.16 함수 표현식
13.17 정리
3부 템플릿과 설계
14장 템플릿의 다형성 능력
14.1 동적 다형성
14.2 정적 다형성
14.3 동적 다형성과 정적 다형성 비교
14.4 설계 패턴의 새로운 형태
14.5 일반 프로그래밍
14.6 정리
15장 특질과 정책 클래스
15.1 예제: 수열 더하기
15.1.1 고정 특질(fixed trait)
15.1.2 값 특질
15.1.3 매개변수화된 특질
15.1.4 정책과 정책 클래스
15.1.5 특질과 정책: 무엇이 다른가?
15.1.6 멤버 템플릿과 템플릿 템플릿 매개변수 비교
15.1.7 다양한 정책과(이나) 특질 결합
15.1.8 일반 반복자를 통해 추적
15.2 데이터형 함수
15.2.1 요소의 데이터형 결정
15.2.2 클래스형 결정
15.2.3 참조자와 한정자
15.2.4 데이터형 승격 특질
15.3 정책 특질
15.3.1 읽기 전용 매개변수형
15.3.2 복사, 교환, 이동
15.4 정리
16장 템플릿과 상속
16.1 이름 붙여진 템플릿 인자
16.2 빈 기본 클래스 최적화
16.2.1 레이아웃 원칙
16.2.2 기본 클래스로서의 멤버
16.3 묘하게 되풀이되는 템플릿 패턴
16.4 매개변수화된 가상성
16.5 정리
17장 메타프로그래밍
17.1 메타프로그램의 첫 번째 예
17.2 열거형 값과 정적 상수 비교
17.3 제곱근 구하기 예제
17.4 유도 변수 사용
17.5 계산 완벽성
17.6 재귀적 인스턴스화와 재귀적 템플릿 인자 비교
17.7 루프를 풀기 위한 메타프로그래밍
17.8 정리
18장 표현식 템플릿
18.1 임시 루프와 루프 분할
18.2 템플릿 인자에 표현식 표현
18.2.1 표현식 템플릿의 피연산자
18.2.2 Array형
18.2.3 연산자
18.2.4 복습
18.2.5 표현식 템플릿 할당
18.3 표현식 템플릿의 성능과 한계
18.4 정리
4부 고급 애플리케이션
19장 데이터형 분류
19.1 기초형 결정
19.2 복합형 결정
19.3 함수형 식별
19.4 오버로딩 해석으로 열거형 분류
19.5 클래스형 결정
19.6 모두 다 함께
19.7 정리
20장 스마트 포인터
20.1 소유자와 전달 캡슐
20.1.1 예외로부터 보호
20.1.2 소유자
20.1.3 멤버로서의 소유자
20.1.4 자원 획득은 초기화다
20.1.5 Holder 한계
20.1.6 소유자 복사
20.1.7 함수 호출 너머로 소유자 복사
20.1.8 전달 캡슐
20.2 참조자 카운트
20.2.1 카운터의 위치
20.2.2 동시 카운터 접근
20.2.3 소멸과 할당 해제
20.2.4 CountingPtr 템플릿
20.2.5 간단한 비침습성 카운터
20.2.6 간단한 침습성 카운터 템플릿
20.2.7 상수성
20.2.8 묵시적 변환
20.2.9 비교
20.3 정리
21장 튜플
21.1 듀오
21.2 재귀적 Duo
21.2.1 필드의 수
21.2.2 필드의 데이터형
21.2.3 필드의 값
21.3 튜플 생성
21.4 정리
22장 함수 객체와 콜백
22.1 직접, 간접과 인라인 호출
22.2 함수에 대한 포인터와 참조자
22.3 멤버 접근 포인터 함수
22.4 클래스형 functor
22.4.1 첫 번째 클래스형 functor
22.4.2 클래스형 functor의 종류
22.5 functor 명시
22.5.1 템플릿형 인자로서의 functor
22.5.2 함수 호출 인자로서의 functor
22.5.3 함수 호출 매개변수와 템플릿형 매개변수 결합
22.5.4 데이터형이 아닌 템플릿 인자로서의 functor
22.5.5 함수 포인터 캡슐화
22.6 내부 점검
22.6.1 functor형 분석
22.6.2 매개변수형 접근
22.6.3 함수 포인터 캡슐화
22.7 함수 객체 조합
22.7.1 간단한 조합
22.7.2 혼합된 데이터형 조합
22.7.3 매개변수의 수 줄이기
22.8 값 바인더
22.8.1 바인딩 선택
22.8.2 바인드 서명
22.8.3 인자 선택
22.8.4 편의 함수
22.9 functor 연산: 전체 구현
22.10 정리
부록A 단 정의 법칙
A.1 번역 단위
A.2 선언과 정의
A.3 상세한 단정의 법칙
A.3.1 프로그램당 한 번
A.3.2 번역 단위별 한 번 정의 제약
A.3.3 교차 번역 단위 동등 제약
부록B 오버로딩 해석
B.1 오버로딩 해석이 적용되는 시기
B.2 간략화된 오버로딩 해석
B.2.1 멤버 함수를 위해 포함된 인자
B.2.2 완벽한 일치 개량
B.3 세부 오버로딩
B.3.1 비템플릿 선호
B.3.2 변환 순서
B.3.3 포인터 변환
B.3.4 functor와 대리 함수
B.3.5 기타 오버로딩 문맥