ANSI C++ 라이브러리와 잘 조화되어 동작하며, 이식이 가능한
다양한 라이브러리들의 모음입니다.
이 중에서는 차후에 ANSI C++ 라이브러리에 포함될 가능성이 있는 것이 많습니다.
특히 STL에 관련된 다양한 라이브러리가 많습니다.
shared_ptr등의 스마트 포인터와 풍부한 함수 객체들이 많습니다.
reg_ex(정규표현식)이나, tokenizer(토크나이저)등의 유용한 문자열 처리 라이브러리도 좋더군요.
다음은 Boost 라이브러리에 포함된 각 라이브러리들의 목록입니다.
any - Safe, generic container for single values of different value types, from Kevlin Henney.
array - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis.
bind and mem_fn - Generalized binders for function/object/pointers and member functions, from Peter Dimov.
call_traits - Defines types for passing parameters, from John Maddock, Howard Hinnant, et al.
compatibility - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer.
compose - Functional composition adapters for the STL, from Nicolai Josuttis.
compressed_pair - Empty member optimization, from John Maddock, Howard Hinnant, et al.
concept check - Tools for generic programming, from Jeremy Siek.
config - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.
conversion - Numeric, polymorphic, and lexical casts, from Dave Abrahams and Kevlin Henney.
crc - Cyclic Redundancy Code, from Daryle Walker.
function - Function object wrappers for deferred calls or callbacks, from Doug Gregor.
functional - Enhanced function object adaptors, from Mark Rodgers.
graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team.
integer - Headers to ease dealing with integral types.
io state savers - Save I/O state to prevent jumbled data, from Daryle Walker.
iterator adaptors - Adapt a base type into a standard conforming iterator, and more, from Dave Abrahams, Jeremy Siek, and John Potter.
lambda - Define small unnamed function objects at the actual call site, and more, from Jaakko Järvi and Gary Powell.
math - Several contributions in the domain of mathematics, from various authors.
math/common_factor - Greatest common divisor and least common multiple, from Daryle Walker.
math/octonion - Octonions, from Hubert Holin.
math/quaterion - Quaterions, from Hubert Holin.
math/special_functions - Mathematical special functions such as atanh, sinc, and sinhc, from Hubert Holin.
operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.
pool - Memory pool management, from Steve Cleary.
preprocessor - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen.
property map - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.
python - Reflects C++ classes and functions into Python, from Dave Abrahams.
random - A complete system for random number generation, from Jens Maurer.
rational - A rational number class, from Paul Moore.
ref - A utility library for passing references to generic functions, from Jaako Järvi, Peter Dimov, Doug Gregor, and Dave Abrahams.
regex - Regular expression library, from John Maddock.
smart_ptr - Five smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler.
static_assert - Static assertions (compile time assertions), from John Maddock.
test - Support for program testing and execution, from Beman Dawes.
thread - Portable C++ multi-threading, from William Kempf.
timer - Event timer, progress timer, and progress display classes, from Beman Dawes.
tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandela.
tuple - Ease definition of functions returning multiple values, and more, from Jaakko Järvi.
type_traits - Templates for fundamental properties of types, from John Maddock, Steve Cleary, et al.
utility - Class noncopyable plus checked_delete(), checked_array_delete(), next(), prior() function templates, plus base-from-member idiom, from Dave Abrahams and others.
자세한 내용은
http://boost.org 를 참고하세요.
설치 방법은 대략 다음과 같습니다.
boost_all.zip 파일을
$(BCB)\include\boost_1_28_0
과 같은 경로에 풀어주신후,
템플릿 라이브러리의 경우는 프로젝트 옵션에서 Include Path만 정확히 지정만 하면 됩니다.
인클루드 하실 때는 다음과 같이 "boost/"를 붙이시고,
#include <boost/tokenizer.hpp>
using namespace std; 문과 함께
using namespace boost;
하는 것을 잊지 마시기 바랍니다.
컴파일해야 하는 라이브러리는
bjam.zip을 위의 경로에 푸신 후에,
명령 프롬프트에서
bjam "-sTOOLS=borland"
라고 치시면 컴파일됩니다.