관리 메뉴

KoreanFoodie's Study

Effective C++ 정리 9 : 그 밖의 이야기들 본문

Tutorials/C++ : Advanced

Effective C++ 정리 9 : 그 밖의 이야기들

머니덕 2022. 9. 19. 11:24

C++ 프로그래머의 필독서이자 바이블인, 스콧 마이어스의 Effective C++ 를 읽고 기억할 내용을 요약하고 있습니다. 꼭 읽어보시길 추천드립니다!


항목 53 : 컴파일러 경고를 지나치지 말자

핵심 :

1. 컴파일러 경고를 쉽게 지나치지 말자. 경고 메시지를 내지 않는 코드를 짜자.
2. 컴파일러 경고에 너무 기대지는 말자! 컴파일러마다 경고 메시지는 달라질 수 있다!

 

다음 예시를 보자.

class B
{
public:
	virtual void f() const;
};

class D: public B
{
public:
	// f 는 재선언된 것이 아니라, 아예 가리고 있음
	virtual void f();
};

컴파일러는 위 경우, "warning: D::f() hides virtual B::f()" 를 경고 메시지를 출력할 수도 있다. 이런 컴파일러의 경고 메시지를 무시하지 말고 잘 해소(?) 하도록 하자.

 

 

항목 54 : TR1 을 포함한 표준 라이브러리 구성요소와 편안한 친구가 되자

핵심 :

1. 최초에 상정된 C++ 표준 라이브러리의 주요 구성요소는 STL, iostream, 로케일 등이다.
2. TR1 이 도입되면서 추가된 것은 스마트 포인터, 일반화 함수, 해시 기반 컨테이너, 정규 표현식 등등이다
3. TR1 자체는 단순히 명세서이며, TR1 기능을 사용하기 위해서는 명세를 구현한 코드를 구해야 한다. 대표적인 자료처 중 한 군데가 바로 부스트이다.

 

사실 해당 책은 현재 시점(2022년) 으로부터 7년 전에 나온 개정판이므로, 책에서 설명하는 TR1 에 속한 것들은 대부분 표준 라이브러리에 포함되어 있다. 따라서 대략적인 요소들을 다시 짚어보는 것으로 해당 항목을 마무리하고자 한다.

  • 스마트 포인터(smart pointer)
  • std::function
  • std::bind
  • 해시 테이블(hash table)
  • 정규 표현식(regular expression)
  • 투플(tuple)
  • std::array
  • std::mem_fn
  • std::reference_wrapper : 기존의 참조가가 객체처럼 행세할 수 있도록 만들어 주는 템플릿
  • 난수 발생
  • 특수 용도의 수학 함수
  • 타입 특성정보(type traits)
  • std::result_of

 

 

항목 55 : Boo子有親! 부스트를 늘 여러분 가까이에

핵심 :

1. 부스트는 C++ 표준화에 있어 영향력 있는 오픈 소스 C++ 라이브러리 개발 모임이다.
2. 부스트의 다양한 라이브러리를 살펴보자

 

부스트 라이브러리는 엄격한 심사를 통해 높은 품질의 코드를 제공한다. 예시는 정말 다양한데, 웹사이트를 들어가서 다양한 라이브러리를 구경해 보자!

 

 

 

0 Comments
댓글쓰기 폼