HOME > Detail View

Detail View

C++ template metaprogramming : Boost로부터 배우는 개념, 도구, 기법

C++ template metaprogramming : Boost로부터 배우는 개념, 도구, 기법 (Loan 25 times)

Material type
단행본
Personal Author
Abrahams, David Gurtovoy, Aleksey, 저 류광, 역
Title Statement
C++ template metaprogramming : Boost로부터 배우는 개념, 도구, 기법 / David Abrahams, Aleksey Gurtovoy 공저 ; 류광 역
Publication, Distribution, etc
서울 :   정보문화사,   2005  
Physical Medium
406 p. : 삽화 ; 24 cm + 전자 광디스크 (CD-ROM) 1매
Varied Title
C++ template metaprogramming : concepts, tools, and techniques from boost and beyond
ISBN
8956742677 9788956742670
General Note
부록: MPL 이식성 요약  
Bibliography, Etc. Note
참고문헌(p. [387]-389)과 색인수록
Subject Added Entry-Topical Term
C++ (Computer program language) Computer programming
000 00000nam c2200205 c 4500
001 000045195206
005 20170829103819
007 ta
008 050718s2005 ulka b 001a kor
020 ▼a 8956742677 ▼g 18000
020 ▼a 9788956742670 ▼g 18000
040 ▼a 211010 ▼c 211010 ▼d 211010 ▼d 244002 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.13/3 ▼2 22
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b C110 2005k
100 1 ▼a Abrahams, David
245 1 0 ▼a C++ template metaprogramming : ▼b Boost로부터 배우는 개념, 도구, 기법 / ▼d David Abrahams, ▼e Aleksey Gurtovoy 공저 ; ▼e 류광 역
246 0 9 ▼a C++ template metaprogramming : ▼b concepts, tools, and techniques from boost and beyond
246 3 ▼a C++ 템플릿 메타프로그래밍
246 3 ▼a 씨 플러스 플러스 템플릿 메타프로그래밍
260 ▼a 서울 : ▼b 정보문화사, ▼c 2005
300 ▼a 406 p. : ▼b 삽화 ; ▼c 24 cm + ▼e 전자 광디스크 (CD-ROM) 1매
500 ▼a 부록: MPL 이식성 요약
504 ▼a 참고문헌(p. [387]-389)과 색인수록
650 0 ▼a C++ (Computer program language)
650 0 ▼a Computer programming
700 1 ▼a Gurtovoy, Aleksey, ▼e
700 1 ▼a 류광, ▼e
900 1 0 ▼a 유광, ▼e

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 005.133 C110 2005k Accession No. 111341813 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Main Library/Education Reserves2A/ Call Number 005.133 C110 2005k Accession No. 111341814 Availability Available Due Date Make a Reservation Service B M
No. 3 Location Main Library/Education Reserves(Health Science)/ Call Number 005.133 C110 2005k Accession No. 141047520 Availability Available Due Date Make a Reservation Service B M
No. 4 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 C110 2005k Accession No. 121111661 Availability Available Due Date Make a Reservation Service B M
No. 5 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 C110 2005k Accession No. 121111662 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 005.133 C110 2005k Accession No. 111341813 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Main Library/Education Reserves2A/ Call Number 005.133 C110 2005k Accession No. 111341814 Availability Available Due Date Make a Reservation Service B M
No. 3 Location Main Library/Education Reserves(Health Science)/ Call Number 005.133 C110 2005k Accession No. 141047520 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 C110 2005k Accession No. 121111661 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 C110 2005k Accession No. 121111662 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

표준 템플릿 라이브러리(STL)의 관용구들에 익숙한 모든 프로그래머들을 대상으로 실용적인 메타프로그래밍 수단과 기법을 알려준다. 메타프로그래밍이 무엇이며 어떤 곳에 사용할 때 가장 빛을 발하는지에 대해 이야기하고, 템플릿 메타프로그래밍을 실제 업무에 사용하려 할 때 필요한 토대를 제공하고 있다.


Information Provided By: : Aladin

Author Introduction

David Abrahams(지은이)

Boost C++ 라이브러리 개발 그룹의 창립 멤버이자 중재자다. 1996년부터 ANSI/ISO C++ 위원회의 일원으로 활동하고 있으며, C++ 라이브러리의 예외 처리에 대한 이론, 명세, 구현에 기여한 것으로 가장 잘 알려져 있다.

Aleksey Gurtovoy(지은이)

MetaCommunication의 기술 선임이자, Boost C++ 공동체에 기여하는 일원이다. 또한 Boost Metaprogramming 라이브러리의 원 작성자이기도 하다. Krasnoyarsk Technical State University, Russia에서 전산학 석사 학위를 받았다.

류광(옮긴이)

주로 IT 분야 전문서를 옮기는 전업 번역가로, 《컴퓨터 프로그래밍의 예술(The Art of Computer Programming)》 시리즈와 《UNIX 고급 프로그래밍(Advanced Programming in UNIX Environment)》 제2판 및 제3판, 《Game Programming Gems》 시리즈를 포함해 80권 이상의 책을 번역했다. C++ 관련 번역서로는 《Effective Modern C++》, 《핵심 C++ 표준 라이브러리》, 《(C++로 배우는) 프로그래밍의 원리와 실제》, 《일반적 프로그래밍과 STL》 등이 있다. 홈페이지 ‘류광의 번역 이야기’(http://occamsrazr.net)와 게임 개발 사이트 GpgStudy(http://gpgstudy.com)를 운영한다.

Information Provided By: : Aladin

Table of Contents

서문 
감사의 말 
이 책을 제대로 활용하려면 

1. 도입 
1.1 시작하며 
1.2 메타프로그램이란? 
1.3 호스트 언어 안에서의 메타프로그래밍 
1.4 C++의 메타프로그래밍 
1.4.1 수치 계산 
1.4.2 형식의 계산 
1.5 메타프로그래밍이 필요한 이유 
1.5.1 대안 1: 실행시점 계산 
1.5.2 대안 2: 사용자 해석 
1.5.3 C++ 메타프로그래밍이 필요한 이유 
1.6 언제 메타프로그래밍을 할 것인가 
1.7 메타프로그래밍 라이브러리가 필요한 이유 

2. 특질과 형식 다루기 
2.1 형식 연관 
2.1.1 직접적인 접근방식 
2.1.2 좀 더 우회적인 방식 
2.1.3 지름길을 찾아서 
2.2 메타함수 
2.3 수치적인 메타함수 
2.4 실행 시점에서의 선택 
2.4.1 iter_swap에 대해 좀 더 
2.4.2 좀 더 최적화하자면 
2.4.3 또 다른 문제 
2.4.4 최종적인 해결책 
2.5 Boost Type Traits 라이브러리에 대한 간단한 소개 
2.5.1 일반적인 사항 
2.5.2 기본 형식 범주화 
2.5.3 2차 형식 범주화 
2.5.4 형식 속성들 
2.5.5 형식들 사이의 관계 
2.5.6 형식 변환 
2.6 무항 메타함수 
2.7 메타함수의 정의 
2.8 역사 
2.9 세부사항 
2.10 실습 과제 

3. 메타함수에 대해 좀 더 자세히 
3.1 차원 해석 
3.1.1 차원의 표현 
3.1.2 수량의 표현 
3.1.3 더하기와 빼기의 구현 
3.1.4 곱하기의 구현 
3.1.5 나누기 구현 
3.2 고차 메타함수들 
3.3 자리표 다루기 
3.3.1 lambda 메타함수 
3.3.2 apply 메타함수 
3.4 람다의 추가적인 기능들 
3.4.1 부분적인 메타함수 적용 
3.4.2 메타함수 합성 
3.5 람다의 세부사항 
3.5.1 자리표 
3.5.2 자리표 표현식의 정의 
3.5.3 람다와 비 메타함수 템플릿 
3.5.4 게으름의 가치 
3.6 세부사항 
3.7 실습 과제 

4. 정수 형식 래퍼들과 연산들 
4.1 부울 래퍼들과 연산들 
4.1.1 형식 선택 
4.1.2 게으른 형식 선택 
4.1.3 논리 연산자들 
4.2 정수 래퍼들과 연산들 
4.2.1 정수 연산자들 
4.2.2 _c 정수 단축 표기 
4.3 실습 과제 

5. 순차열과 반복자 
5.1 개념 
5.2 순차열과 알고리즘 
5.3 반복자 
5.4 반복자 개념들 
5.4.1 전진 반복자 
5.4.2 양방향 반복자 
5.4.3 임의 접근 반복자 
5.5 순차열 개념들 
5.5.1 순차열 운행 개념들 
5.5.2 확장성 
5.5.3 연관 순차열 
5.5.4 확장 가능 연관 순차열 
5.6 순차열의 상등 
5.7 고유 순차열 연산들 
5.8 순차열 클래스들 
5.8.1 list 
5.8.2 vector 
5.8.3 deque 
5.8.4 range_c 
5.8.5 map 
5.8.6 set 
5.8.7 iterator_range 
5.9 정수 순차열 래퍼들 
5.10 순차열 파생 
5.11 순차열을 직접 작성하려면 
5.11.1 tiny 순차열 만들기 
5.11.2 반복자 표현 
5.11.3 tiny에 대한 at 구현 
5.11.4 tiny_iterator 구현의 완성 
5.11.5 begin과 end 
5.11.6 확장성 추가 
5.12 세부사항 
5.13 실습 과제 

6. 알고리즘 
6.1 알고리즘, 관용구, 재사용, 추상 
6.2 MPL의 알고리즘들 
6.3 삽입자 
6.4 기본적인 순차열 알고리즘들 
6.5 조회 알고리즘들 
6.6 순차열 생성 알고리즘들 
6.7 알고리즘 직접 작성하기 
6.8 세부사항 
6.9 실습 과제 

7. 뷰와 반복자 적응자 
7.1 예제 몇 개 
7.1.1 순차열 요소들로 계산된 값들의 비교 
7.1.2 여러 순차열들을 결합하기 
7.1.3 불필요한 계산 피하기 
7.1.4 선택적인 요소 처리 
7.2 뷰 개념 
7.3 반복자 적응자 
7.4 뷰 직접 작성하기 
7.5 역사 
7.6 실습 과제 

8. 진단 
8.1 오류 소설을 디버깅하기 
8.1.1 인스턴스화 역추적 
8.1.2 다양한 오류 서식들 
8.2 도구를 이용한 진단 분석 
8.2.1 다른 의견도 들어볼 것 
8.2.2 소스 코드 이동 보조 기능을 활용할 것 
8.2.3 쓸 데 없는 가지를 쳐낼 것 
8.3 의도적인 진단 생성 
8.3.1 정적 단언문 
8.3.2 MPL 정적 단언문 
8.3.3 형식 출력 
8.4 역사 
8.5 세부사항 
8.6 실습 과제 

9. 컴파일 시점/실행시점 경계 건너기 
9.1 for_each 
9.1.1 형식 출력 
9.1.2 형식 방문 
9.2 구현 선택 
9.2.1 if 문 
9.2.2 클래스 템플릿 특수화 
9.2.3 꼬리표 분배 
9.3 객체 생성기 
9.4 구조 선택 
9.5 클래스 합성 
9.6 템플릿 인수로서의 (멤버)함수 포인터 
9.7 형식 삭제(type erasure) 
9.7.1 예제 하나 
9.7.2 일반화 
9.7.3 "수동" 형식 삭제 
9.7.4 자동적인 형식 삭제 
9.7.5 인터페이스의 보존 
9.8 묘하게 되풀이되는 템플릿 패턴 
9.8.1 함수의 생성 
9.8.2 중복적재 해소의 관리 
9.9 중복적재 집합의 명시적인 관리 
9.10 "sizeof 트릭" 
9.11 요약 
9.12 실습 과제 

10. 영역 국한 내장 언어 
10.1 작은 언어 하나... 
10.2 ...생각보다는 크다 
10.2.1 make 유틸리티 언어 
10.2.2 배커스 나우어 형식 
10.2.3 YACC 
10.2.4 DSL 요약 
10.3 뒤집힌 DSL 
10.4 호스트 언어로서의 C++ 
10.5 Blitz++와 표현식 템플릿 
10.5.1 문제 
10.5.2 표현식 템플릿 
10.5.3 그 외의 Blitz++ 마법 
10.6 범용 DSEL들 
10.6.1 명명된 매개변수 
10.6.2 익명 함수 만들기 
10.7 Boost Spirit 라이브러리 
10.7.1 닫힘 
10.7.2 하위규칙 
10.8 요약 
10.9 실습 과제 

11. DSEL 설계 따라하기 
11.1 유한상태기계 
11.1.1 영역 추상 
11.1.2 표기법 
11.2 프레임웍 설계 목표 
11.3 프레임웍 인터페이스 기초 
11.4 DSL 선택 
11.4.1 전이표의 표현 
11.4.2 종합 
11.5 구현 
11.6 분석 
11.7 C++ 언어 자체의 개선 방향 
11.8 실습 과제 

부록 A 전처리기 메타프로그래밍 입문 
A.1 동기 
A.1.1 코드 생성 
A.1.2 해결책은 전처리기 
A.2 전처리기의 근본 추상들 
A.2.1 전처리 토큰 
A.2.2 매크로 
A.2.3 매크로 인수 
A.3 전처리기 라이브러리 구조 
A.4 전처리기 라이브러리의 추상들 
A.4.1 되풀이 
A.4.2 산술, 논리, 비교 연산들 
A.4.3 제어 구조 
A.4.4 토큰 붙이기 
A.4.5 자료 형식 
A.5 실습 과제 

부록 B typename 키워드와 template 키워드 
B.1 논점 
B.1.1 문제점 하나 
B.1.2 형식의 모호성 해소 
B.1.3 class 대 typename 
B.1.4 문제점 둘 
B.1.5 템플릿 모호성 해소 
B.2 규칙 
B.2.1 typename 키워드 
B.2.2 template 키워드 

부록 C 컴파일 시점 성능 
C.1 계산 모형 
C.1.1 결과 보존 
C.1.2 예제 하나 
C.1.3 숨겨져 있는 것들 
C.2 컴파일 시간 관리 
C.3 테스트 
C.3.1 결과 보존의 효과 
C.3.2 기억한 결과의 조회 비용 
C.3.3 특수화의 언급 
C.3.4 내포된 템플릿 인스턴스화 
C.3.5 부분 특수화 개수 
C.3.6 긴 기호 
C.3.7 메타함수 이름의 구조 복잡도 

부록 D MPL 이식성 요약 
참고문헌 
찾아보기

New Arrivals Books in Related Fields