EXCEPTIONAL C++ STYLE저자 HERB SUTTER역자 류광출판사정보문화사40개의 새로운 C++ 프로그래밍 시나리오들을 제시하는 책. C++ 프로그래밍에 대한 실질적인 질문들과 해답들로 구성된 이 책은 필수적인 C++ 세부 사항과 그 상호관계에 대한 새로운 통찰을 제공하며, 일반적 프로그래밍, STL, 예외 안전성 등 오늘날의 C++ .. 이 책이다. .. 이 책은 More Exceptional C++ 다음 책으로, .. 류광씨가 번역한 책이다. 자. 이제 이것도 고고싱이다.
전체 글 검색 결과
1장 일반화 프로그래밍과 C++ 표준 라이브러리 Item 1: 스트림 전환(Switching Streams) Item 2: 판단자(predicate) Part 1: remove()가 삭제하는 것은? Item 3: 판단자(predicate) Part 2: 상태와 판단자 Item 4: 확장 가능한 템플릿: 상속을 통해서 아니면 특성(traits) 클래스를 통해서? Item 5: Typename Item 6: 컨테이너, 포인터 그리고 컨테이너가 아닌 컨테이너 Item 7: vector와 deque 사용하기 Item 8: set과 map 사용하기 Item 9: 똑같은 코드? Item 10: 템플릿 특화(specialization)와 오버로딩(overloading) Item 11: Mastermind 2장 최적화..
.. 음 얼마전 이 부분에 대해서 정리했던게 새록 새록 기억이 새어 나온다. 빠르게 질문해보자. 1. 템플릿 특화는 무엇인가? 예를 들어라. .. 특수화된 템플릿이다. 참조 : http://www.ikpil.com/767 2. 부분 특화는 무엇인가? 예를 들어라. .. 특수화를 부분적으로 한게 부분 특화 이다. 3. 다음 선언을 살펴보자. #include template void g( T1, T2 );// 1 template void g( T ); // 2 template void g( T, T ); // 3 template void g( T* ); // 4 template void g( T*, T );// 5 template void g( T, T* );// 6 template void g( int, ..
함수 매개변수를 후위증가 시키는것과 같은 간단한 코드 차이도 결과에 큰 영향을 미칠수 있다는 것을 보여 주는 항목이다. ... 바로 질문 넘어가자. 1. 다음 코드가 하는 일을 설명하라. f( a++ ); f의 경우 1. f가 함수 일 경우, 내부적으로 a의 타입에 맞는 복사 생성자가 호출되어, a와 똑같은 임시객체가 생성되고, 자신을 증가시킨 후, 임시객체를 a++ 자리에 올려 두고 f()에 전달한다. 또한 표준에 의하여, 임시객체를 non-const 로 받을수 없기 때문에 f는 const reference나 복사 생성자를 이용하여 전달해야만 할 것이다. 2. f가 매크로 함수(#define 함수)라면, 경우에 따라서 a가 여러번 호출 될 수 있다는 점이다. 3. f가 객체라면, 1번과 마찬가지 4. ..
바로 질문 들어간다. 1. a) 다음 코드의 문제점은 무엇이고, 어떻게 수정할 수 있을까? #include #include int main( void ) { std::map m; std::map::iterator i = m.find( 13 ); if( i != m.end() ) { const_cast( i->first ) = 99999; } return 0; } 딱 봐도 문제인것은 키 값을 강제로 변경 시키고 있다. map은 자동 정렬 되기 때문에, 이렇게 key 를 바꾸게 되면, 큰 문제가 생기게 되므로 절대 해야 하지 말아야 한다. 만약 키를 바꾸고 싶다면, 다음 코드처럼 해야 한다. b) 다음의 코드를 쓰면 어느 정도까지 문제가 해결 될까? #include #include int main( void..
최근댓글