사전 TR1 컴파일러를 사용하는 경우 스마트 포인터
boost::shared_ptr
boost::weak_ptr
boost::scoped_ptr
boost::scoped_array
boost::shared_array
컴파일러에 이미 스마트 포인터가있는 경우이를 사용하십시오.
스마트 포인터가없는 C ++은 기본적으로 C ++이 아닙니다.
ptr_contaier 라이브러리를 향상시킵니다.
모든 STL 컨테이너는 포인터를 보유하기 위해 특별히 다시 구현되었습니다. 컨테이너는 포인터를 소유 할뿐만 아니라 컨테이너가 파괴 될 때 모든 포인터를 자동으로 파괴합니다. 그러나 일반적인 객체 참조 (포인터가 아닌)로 요소에 대한 액세스도 제공하므로 래퍼 기능이없는 표준 알고리즘에서 객체를 쉽게 사용할 수 있습니다.
부스트 람다 라이브러리. (아래 의견 참조)
STL 펑터 및 바인더는 간단한 작업에 적합합니다. 그러나 boost :: lambda는 다음 단계로 표준 알고리즘을 사용할 때 훨씬 간단하게 만듭니다.
boost :: any 및 boost :: variant
정확한 유형을 몰라도 개체를 잡아야하는 경우
멀티 인덱스 컨테이너
여러 가지 다른 방법으로 요소에 액세스 할 수있는 컨테이너.
객체 벡터와 빠른 검색 벡터를위한 별도의지도가있는 시대는 지났습니다. 이렇게하면 컨테이너에 요소를 삽입 / 삭제할 때 두 컨테이너를 유지하기 위해 작성해야하는 상용구가 줄어 듭니다.
boost :: lexical_cast
아마도 실생활에서 가장 유용하지는 않지만 많은 재미는 boost :: lexical_cast입니다. 객체에 문자열로 /로부터 변환합니다 (해당 유형에 적절한 << 및 >> 연산자가 정의되어있는 한). 디버깅시 오류 메시지를 덤프하는 데 매우 유용합니다.