책 이미지
eBook 미리보기
책 정보
· 제목 : C++ 템플릿 2/e : 완벽 가이드 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9791161752174
· 쪽수 : 1068쪽
· 출판일 : 2018-10-22
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9791161752174
· 쪽수 : 1068쪽
· 출판일 : 2018-10-22
책 소개
템플릿은 C++의 가장 강력한 기능 중 하나이지만 제대로 이해하는 사람도 적고, 잘 사용하는 사람도 드물다. 이 책에서는 확실한 가이드를 통해 템플릿의 기초에서부터 C++11, C++14, C++17의 최신 기술을 총망라한 ...
템플릿은 C++의 가장 강력한 기능 중 하나이지만 제대로 이해하는 사람도 적고, 잘 사용하는 사람도 드물다. 이 책에서는 확실한 가이드를 통해 템플릿의 기초에서부터 C++11, C++14, C++17의 최신 기술을 총망라한 고급 이론까지 제공해 이해를 돕는다.
이번 2판에서는 새로운 언어 특성들을 템플릿과 결합시켜 사용하는 방법을 풍부하게 제시한다. 특히 컴파일 시간에 많은 것을 해치우는 메타 프로그래밍 내용이 강화돼, 호기심 많은 독자들의 궁금증을 해소시켜줄 수 있을 것이다.
이번 2판에서는 새로운 언어 특성들을 템플릿과 결합시켜 사용하는 방법을 풍부하게 제시한다. 특히 컴파일 시간에 많은 것을 해치우는 메타 프로그래밍 내용이 강화돼, 호기심 많은 독자들의 궁금증을 해소시켜줄 수 있을 것이다.
목차
1부. 템플릿 기본
001장. 함수 템플릿
__1.1 함수 템플릿
__1.2 템플릿 인자 연역
__1.3 다중 템플릿 파라미터
__1.4 기본 템플릿 인자
__1.5 함수 템플릿 오버로딩
__1.6 그런데 ... 해야 하지 않는가?
__1.7 요약
002장. 클래스 템플릿
__2.1 클래스 템플릿 Stack의 구현
__2.2 클래스 템플릿 Stack의 사용
__2.3 클래스 템플릿의 일부 사용
__2.4 프렌드
__2.5 클래스 템플릿의 특수화
__2.6 부분 특수화
__2.7 기본 클래스 템플릿 인자
__2.8 형식 별칭
__2.9 템플릿 클래스 인자 연역
__2.10 템플릿화된 집합
__2.11 요약
003장. 형식이 아닌 템플릿 파라미터
__3.1 형식이 아닌 클래스 템플릿 파라미터
__3.2 형식이 아닌 함수 템플릿 파라미터
__3.3 형식이 아닌 템플릿 파라미터에 대한 제약
__3.4 템플릿 파라미터 형식로서의 auto
__3.5 요약
004장. 가변 인자 템플릿
__4.1 가변 인자 템플릿
__4.2 접힌 표현식
__4.3 가변 인자 템플릿 애플리케이션
__4.4 가변 클래스 템플릿과 가변 표현식
__4.5 요약
005장. 까다로운 기초 지식
__5.1 키워드 typename
__5.2 0 초기화
__5.3 this-> 사용
__5.4 원시 배열과 문자열 리터럴을 사용하는 템플릿
__5.5 멤버 템플릿
__5.6 변수 템플릿
__5.7 템플릿 템플릿 파라미터
__5.8 요약
006장. 이동 의미 체계와 enable_if<>
__6.1 완벽한 전달
__6.2 특수 멤버 함수 템플릿
__6.3 enable_if<>로 템플릿 비활성화
__6.4 enable_if<> 사용
__6.5 enable_if<> 표현식을 간단하게 만드는 개념 사용
__6.6 요약
007장. 값으로 전달 또는 참조로 전달
__7.1 값으로 전달
__7.2 참조자로 전달
__7.3 std::ref()와 std::cref() 사용
__7.4 문자열 리터럴과 원시 배열
__7.5 반환 값 다루기
__7.6 템플릿 파라미터 선언 추천 방식
__7.7 요약
008장. 컴파일 과정 프로그래밍
__8.1 템플릿 메타프로그래밍
__8.2 constexpr로 계산
__8.3 부분 특수화로 실행 경로 선택
__8.4 SFINAE(치환 실패는 오류가 아니다)
__8.5 컴파일 과정 if
__8.6 요약
009장. 템플릿 실제 사용
__9.1 포함 모델
__9.2 템플릿과 인라인
010장. 기본 템플릿 용어
__10.1 '클래스 템플릿'인가, '템플릿 클래스'인가?
__10.2 치환, 인스턴스화, 특수화
__10.3 선언과 정의
__10.4 단정의 법칙
__10.5 템플릿 인자와 템플릿 파라미터
__10.6 요약
011장. 일반 라이브러리
__11.1 호출 가능한 객체
__11.2 일반 라이브러리를 구현에 사용되는 기타 유틸리티
__11.3 임시 값 완벽히 전달
__11.4 참조자를 템플릿 파라미터로 쓰기
__11.5 평가 지연시키기
__11.6 일반 라이브러리를 작성할 때 고려해야 할 것
__11.7 요약
2부. 템플릿 상세 설명
012장. 템플릿 기초 원리 상세 학습
__12.1 파라미터화된 선언
__12.2 템플릿 파라미터
__12.3 템플릿 인자
__12.4 가변 템플릿
__12.5 프렌드
__12.6 후기
013장. 템플릿에서 이름
__13.1 이름 분류법
__13.2 이름 룩업
__13.3 템플릿 파싱
__13.4 상속과 클래스 템플릿
__13.5 후기
014장. 인스턴스화
__14.1 주문형 인스턴스화
__14.2 게으른 인스턴스화
__14.5 명시적 인스턴스화
__14.6 컴파일 과정 if문
__14.7 표준 라이브러리내에서
__14.8 후기
015장. 템플릿 인자 연역
__15.1 연역 과정
__15.2 연역된 문맥
__15.3 특별 연역 상황
__15.4 초기화자 목록
__15.5 파라미터 꾸러미
__15.6 rvalue 참조자
__15.7 SFINAE
__15.8 연역의 한계
__15.9 명시적 함수 템플릿 인자
__15.10 초기화자와 표현식에서의 연역
__15.11 별칭 템플릿
__15.12 클래스 템플릿 인자 연역
__15.13 후기
016장. 특수화와 오버로딩
__16.1 '일반적인 코드'가 별로 좋지 않을 때
__16.2 함수 템플릿 오버로딩
__16.3 명시적 특수화
__16.4 부분 클래스 템플릿 특수화
__16.5 부분 변수 템플릿 특수화
__16.6 후기
017장. 앞으로 나아갈 방향
__17.1 완화된 typename 법칙
__17.2 일반화된 형식이 아닌 템플릿 파라미터
__17.3 함수 템플릿의 부분 특수화
__17.4 이름 붙여진 템플릿 인자
__17.5 클래스 템플릿 오버로딩
__17.6 끝나지 않은 꾸러미 확장 연역
__17.7 void의 정규화
__17.8 템플릿을 위한 형식 검사
__17.9 반영 메타프로그래밍
__17.10 꾸러미 설비
__17.11 모듈
3부. 템플릿과 설계
018장. 템플릿의 다형적 능력
__18.1 동적 다형성
__18.2 정적 다형성
__18.3 동적과 정적 다형성
__18.4 개념 사용
__18.5 설계 패턴의 새로운 형태
__18.6 일반 프로그래밍
__18.7 후기
019장. 특질 구현
__19.1 예제: 수열 덧셈
__19.2 특질 및 정책과 정책 클래스
__19.3 형식 함수
__19.4 SFINAE 기반 특질
__19.5 IsConvertibleT
__19.6 멤버 검출
__19.7 기타 특질 기법
__19.8 형식 분류
__19.9 정책 특질
__19.10 표준 라이브러리에서
__19.11 후기
020장. 형식 속성 오버로딩
__20.1 알고리즘 특수화
__20.2 태그 디스패치
__20.3 함수 템플릿 활성화/비활성화
__20.4 클래스 특수화
__20.5 인스턴스화 안전 템플릿
__20.6 표준 라이브러리
__20.7 후기
021장. 템플릿과 상속
__21.1 빈 기본 클래스 최적화(EBCO)
__21.2 묘하게 되풀이되는 템플릿 패턴(CRTP)
__21.3 믹스인
__21.4 이름 붙여진 템플릿 인자
__21.5 후기
022장. 정적과 동적 다형성 사이 잇기
__22.1 함수 객체, 포인터와 std::function<>
__22.2 일반화된 함수 포인터
__22.3 브리지 인터페이스
__22.4 형식 삭제
__22.5 선택적 사이 잇기
__22.6 성능 고려
__22.7 후기
023장. 메타프로그래밍
__23.1 현대 C++ 메타프로그래밍의 현 상태
__23.2 반영 메타프로그래밍의 중요성
__23.3 재귀 인스턴스화의 비용
__23.4 계산 완전성
__23.5 재귀 인스턴스화와 재귀 템플릿 인자
__23.6 열거형 값과 정적 상수
__23.7 후기
024장. 형식 목록
__24.1 형식 목록 해부
__24.2 형식 목록 알고리즘
__24.3 형식이 아닌 형식 목록
__24.4 꾸러미 확장을 사용한 알고리즘 최적화
__24.5 cons-스타일 형식 목록
__24.6 후기
025장. 튜플
__25.1 기본 튜플 설계
__25.2 기본 튜플 연산
__25.3 튜플 알고리즘
__25.4 튜플 확장
__25.5 튜플 최적화
__25.6 튜플 첨자
__25.7 후기
026장. 구별 공용체
__26.1 저장소
__26.2 설계
__26.3 값 쿼리와 추출
__26.4 요소 초기화, 할당과 소멸
__26.5 방문자
__26.6 변이 값 초기화와 할당
__26.7 후기
027장. 표현식 템플릿
__27.1 임시 루프와 루프 분할
__27.2 템플릿 인자에 표현식 표현
__27.3 표현식 템플릿의 성능과 한계
__27.4 후기
028장. 템플릿 디버깅
__28.1 얕은 인스턴스화
__28.2 정적 단언문
__28.3 원형
__28.4 추적자
__28.5 오라클
__28.6 후기
부록A. 단정의 법칙
__A.1 번역 단위
__A.2 선언과 정의
__A.3 상세한 단정의 법칙
부록B. 값 카테고리
__B.1 전통적인 lvalue와 rvalue
__B.2 C++11 이후의 값 카테고리
__B.3 decltype으로 값 카테고리 검사
__B.4 참조자형
부록C. 오버로딩 해석
__C.1 언제 오버로딩 해석이 적용되는가?
__C.2 간략화된 오버로딩 해석
__C.3 오버로딩 세부 사항
부록D. 표준 형식 유틸리티
__D.1 형식 특질 사용
__D.2 기본과 합성 형식 카테고리
__D.4 형식 생성
__D.5 기타 특질
__D.6 형식 특질 결합
__D.7 기타 유틸리티
부록E. 개념
__E.1 개념 사용
__E.2 개념 정의
__E.3 제약 조건 오버로딩
__E.4 개념 팁
001장. 함수 템플릿
__1.1 함수 템플릿
__1.2 템플릿 인자 연역
__1.3 다중 템플릿 파라미터
__1.4 기본 템플릿 인자
__1.5 함수 템플릿 오버로딩
__1.6 그런데 ... 해야 하지 않는가?
__1.7 요약
002장. 클래스 템플릿
__2.1 클래스 템플릿 Stack의 구현
__2.2 클래스 템플릿 Stack의 사용
__2.3 클래스 템플릿의 일부 사용
__2.4 프렌드
__2.5 클래스 템플릿의 특수화
__2.6 부분 특수화
__2.7 기본 클래스 템플릿 인자
__2.8 형식 별칭
__2.9 템플릿 클래스 인자 연역
__2.10 템플릿화된 집합
__2.11 요약
003장. 형식이 아닌 템플릿 파라미터
__3.1 형식이 아닌 클래스 템플릿 파라미터
__3.2 형식이 아닌 함수 템플릿 파라미터
__3.3 형식이 아닌 템플릿 파라미터에 대한 제약
__3.4 템플릿 파라미터 형식로서의 auto
__3.5 요약
004장. 가변 인자 템플릿
__4.1 가변 인자 템플릿
__4.2 접힌 표현식
__4.3 가변 인자 템플릿 애플리케이션
__4.4 가변 클래스 템플릿과 가변 표현식
__4.5 요약
005장. 까다로운 기초 지식
__5.1 키워드 typename
__5.2 0 초기화
__5.3 this-> 사용
__5.4 원시 배열과 문자열 리터럴을 사용하는 템플릿
__5.5 멤버 템플릿
__5.6 변수 템플릿
__5.7 템플릿 템플릿 파라미터
__5.8 요약
006장. 이동 의미 체계와 enable_if<>
__6.1 완벽한 전달
__6.2 특수 멤버 함수 템플릿
__6.3 enable_if<>로 템플릿 비활성화
__6.4 enable_if<> 사용
__6.5 enable_if<> 표현식을 간단하게 만드는 개념 사용
__6.6 요약
007장. 값으로 전달 또는 참조로 전달
__7.1 값으로 전달
__7.2 참조자로 전달
__7.3 std::ref()와 std::cref() 사용
__7.4 문자열 리터럴과 원시 배열
__7.5 반환 값 다루기
__7.6 템플릿 파라미터 선언 추천 방식
__7.7 요약
008장. 컴파일 과정 프로그래밍
__8.1 템플릿 메타프로그래밍
__8.2 constexpr로 계산
__8.3 부분 특수화로 실행 경로 선택
__8.4 SFINAE(치환 실패는 오류가 아니다)
__8.5 컴파일 과정 if
__8.6 요약
009장. 템플릿 실제 사용
__9.1 포함 모델
__9.2 템플릿과 인라인
010장. 기본 템플릿 용어
__10.1 '클래스 템플릿'인가, '템플릿 클래스'인가?
__10.2 치환, 인스턴스화, 특수화
__10.3 선언과 정의
__10.4 단정의 법칙
__10.5 템플릿 인자와 템플릿 파라미터
__10.6 요약
011장. 일반 라이브러리
__11.1 호출 가능한 객체
__11.2 일반 라이브러리를 구현에 사용되는 기타 유틸리티
__11.3 임시 값 완벽히 전달
__11.4 참조자를 템플릿 파라미터로 쓰기
__11.5 평가 지연시키기
__11.6 일반 라이브러리를 작성할 때 고려해야 할 것
__11.7 요약
2부. 템플릿 상세 설명
012장. 템플릿 기초 원리 상세 학습
__12.1 파라미터화된 선언
__12.2 템플릿 파라미터
__12.3 템플릿 인자
__12.4 가변 템플릿
__12.5 프렌드
__12.6 후기
013장. 템플릿에서 이름
__13.1 이름 분류법
__13.2 이름 룩업
__13.3 템플릿 파싱
__13.4 상속과 클래스 템플릿
__13.5 후기
014장. 인스턴스화
__14.1 주문형 인스턴스화
__14.2 게으른 인스턴스화
__14.5 명시적 인스턴스화
__14.6 컴파일 과정 if문
__14.7 표준 라이브러리내에서
__14.8 후기
015장. 템플릿 인자 연역
__15.1 연역 과정
__15.2 연역된 문맥
__15.3 특별 연역 상황
__15.4 초기화자 목록
__15.5 파라미터 꾸러미
__15.6 rvalue 참조자
__15.7 SFINAE
__15.8 연역의 한계
__15.9 명시적 함수 템플릿 인자
__15.10 초기화자와 표현식에서의 연역
__15.11 별칭 템플릿
__15.12 클래스 템플릿 인자 연역
__15.13 후기
016장. 특수화와 오버로딩
__16.1 '일반적인 코드'가 별로 좋지 않을 때
__16.2 함수 템플릿 오버로딩
__16.3 명시적 특수화
__16.4 부분 클래스 템플릿 특수화
__16.5 부분 변수 템플릿 특수화
__16.6 후기
017장. 앞으로 나아갈 방향
__17.1 완화된 typename 법칙
__17.2 일반화된 형식이 아닌 템플릿 파라미터
__17.3 함수 템플릿의 부분 특수화
__17.4 이름 붙여진 템플릿 인자
__17.5 클래스 템플릿 오버로딩
__17.6 끝나지 않은 꾸러미 확장 연역
__17.7 void의 정규화
__17.8 템플릿을 위한 형식 검사
__17.9 반영 메타프로그래밍
__17.10 꾸러미 설비
__17.11 모듈
3부. 템플릿과 설계
018장. 템플릿의 다형적 능력
__18.1 동적 다형성
__18.2 정적 다형성
__18.3 동적과 정적 다형성
__18.4 개념 사용
__18.5 설계 패턴의 새로운 형태
__18.6 일반 프로그래밍
__18.7 후기
019장. 특질 구현
__19.1 예제: 수열 덧셈
__19.2 특질 및 정책과 정책 클래스
__19.3 형식 함수
__19.4 SFINAE 기반 특질
__19.5 IsConvertibleT
__19.6 멤버 검출
__19.7 기타 특질 기법
__19.8 형식 분류
__19.9 정책 특질
__19.10 표준 라이브러리에서
__19.11 후기
020장. 형식 속성 오버로딩
__20.1 알고리즘 특수화
__20.2 태그 디스패치
__20.3 함수 템플릿 활성화/비활성화
__20.4 클래스 특수화
__20.5 인스턴스화 안전 템플릿
__20.6 표준 라이브러리
__20.7 후기
021장. 템플릿과 상속
__21.1 빈 기본 클래스 최적화(EBCO)
__21.2 묘하게 되풀이되는 템플릿 패턴(CRTP)
__21.3 믹스인
__21.4 이름 붙여진 템플릿 인자
__21.5 후기
022장. 정적과 동적 다형성 사이 잇기
__22.1 함수 객체, 포인터와 std::function<>
__22.2 일반화된 함수 포인터
__22.3 브리지 인터페이스
__22.4 형식 삭제
__22.5 선택적 사이 잇기
__22.6 성능 고려
__22.7 후기
023장. 메타프로그래밍
__23.1 현대 C++ 메타프로그래밍의 현 상태
__23.2 반영 메타프로그래밍의 중요성
__23.3 재귀 인스턴스화의 비용
__23.4 계산 완전성
__23.5 재귀 인스턴스화와 재귀 템플릿 인자
__23.6 열거형 값과 정적 상수
__23.7 후기
024장. 형식 목록
__24.1 형식 목록 해부
__24.2 형식 목록 알고리즘
__24.3 형식이 아닌 형식 목록
__24.4 꾸러미 확장을 사용한 알고리즘 최적화
__24.5 cons-스타일 형식 목록
__24.6 후기
025장. 튜플
__25.1 기본 튜플 설계
__25.2 기본 튜플 연산
__25.3 튜플 알고리즘
__25.4 튜플 확장
__25.5 튜플 최적화
__25.6 튜플 첨자
__25.7 후기
026장. 구별 공용체
__26.1 저장소
__26.2 설계
__26.3 값 쿼리와 추출
__26.4 요소 초기화, 할당과 소멸
__26.5 방문자
__26.6 변이 값 초기화와 할당
__26.7 후기
027장. 표현식 템플릿
__27.1 임시 루프와 루프 분할
__27.2 템플릿 인자에 표현식 표현
__27.3 표현식 템플릿의 성능과 한계
__27.4 후기
028장. 템플릿 디버깅
__28.1 얕은 인스턴스화
__28.2 정적 단언문
__28.3 원형
__28.4 추적자
__28.5 오라클
__28.6 후기
부록A. 단정의 법칙
__A.1 번역 단위
__A.2 선언과 정의
__A.3 상세한 단정의 법칙
부록B. 값 카테고리
__B.1 전통적인 lvalue와 rvalue
__B.2 C++11 이후의 값 카테고리
__B.3 decltype으로 값 카테고리 검사
__B.4 참조자형
부록C. 오버로딩 해석
__C.1 언제 오버로딩 해석이 적용되는가?
__C.2 간략화된 오버로딩 해석
__C.3 오버로딩 세부 사항
부록D. 표준 형식 유틸리티
__D.1 형식 특질 사용
__D.2 기본과 합성 형식 카테고리
__D.4 형식 생성
__D.5 기타 특질
__D.6 형식 특질 결합
__D.7 기타 유틸리티
부록E. 개념
__E.1 개념 사용
__E.2 개념 정의
__E.3 제약 조건 오버로딩
__E.4 개념 팁
추천도서
분야의 베스트셀러 >
분야의 신간도서 >




















