Boost 라이브러리는 현장에 당장 투입 될 수 있을 정도로 품질도 우수하고, 오픈소스이며 대부분의 플랫폼과 컴파일러에서 돌아갑니다.
Boost는 C++ 표준화 위원회와 밀접한 관계를 유지하고 있으며 표준 C++에 추가될 수 있는 기능들의 시험 장소로 사용되고 있습니다.
Boost 라이브러리는 크기와 범위가 아주 제각각입니다. (작은 녀석들은 코드 몇줄이지만 무지막지하게 큰 라이브러리도 있다.)
Boost 라이브러리는 크게 십수 개의 범주로 나뉘어 있습니다.
1. 문자열 및 텍스트 처리
boost::regex -> std::regex C++ 11에서 표준으로 추가
2. 컨테이너
- STL 양식의 인터페이스를 제공하는 고정 크기 배열
tr1::array -> std::array C++ 11에서 표준으로 추가
- 가변크기 비트세트
std::bitset C++11에서 표준으로 추가
- 다차원 배열
boost::multi_array
표준화되지는 않았고 std::array를 중첩해서 쓴다.
3. 함수 객체 및 고차 프로그래밍
boost::lambda -> C++11부터 Lambda expression으로 표준화됨
4. 일반화 프로그래밍
http://www.boost.org/doc/libs/1_63_0/libs/type_traits/doc/html/index.html
엄청난 Trait 들이 존재합니다..
5. 템플릿 메타프로그래밍
typedef boost::mpl::list<float, double, long double> floats;
typedef boost::mpl::push_front<floats, int>::type types;
위와 같이 타입을 담아 관리 할 수 있다.
6. 수학 및 수치 조작
Boost.Rational 유리수
Boost.Quaternions 4원수
boost::math::gcd_evaluator 최대공약수
boost::math::lcm_evaluator 최소공배수
Boost.Random -> std::rand() 난수
7. 정확성 유지 및 테스트
Boost.Test 단위테스트
8. 자료구조
Boost.Tuple -> std::tuple c++11부터 표준화됨
9. 메모리
Boost.SmartPtr -> std::shared_ptr, std::unique_ptr 등으로 c++11부터 표준화됨
'이론 > [책]Effective C++' 카테고리의 다른 글
[항목45]호환되는 모든 타입을 받아들이는 데는 멤버 함수 템플릿이 직방! (0) | 2017.12.28 |
---|---|
[항목44]매개변수에 독립적인 코드는 템플릿으로부터 분리시키자 (0) | 2017.12.26 |
[항목43]템플릿으로 만들어진 기본 클래스 안의 이름에 접근하는 방법을 알아 두자 (0) | 2017.12.25 |