Boost
From: LSST Toolsets
To Quote the boost home page:
Boost provides free peer-reviewed portable C++ source libraries.
We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.
We aim to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. Ten Boost libraries are already included in the C++ Standards Committee's Library Technical Report ( TR1) as a step toward becoming part of a future C++ Standard. More Boost libraries are proposed for the upcoming TR2.
The LSST project's DM group endorse the attempt to produce standardized, high quality libraries. Accordingly, we plan to use Boost whenever appropriate.
If you find functionality in Boost but would prefer not to use it, please check with DManagement before taking a decision.
LSST's Choice of Boost Libraries
Approved version of boost libraries: Boost 1.35.0 (as of 7 May 2008)
Libraries blessed for use in LSST code:
- any
- Safe, generic container for single values of different value types
- format
- Type-safe 'printf-like' format operations
- GIL
- The Generic Image Library (CCB, 2008-09-03).
- lambda
- Lambda functions for use with generic programming (e.g. std::transform)
- MPI
- Message Passing Interface library, for use in distributed-memory parallel application programming
- shared_ptr
- Object ownership shared among multiple pointers
- shared_array
- Array ownership shared among multiple pointers
- test
- Support for simple program testing, full unit testing, and for program execution monitoring. Approval limited to 'header-only' version, not compiled boost:unittest library.
- weak_ptr
- Non-owning observers of an object owned by shared_ptr
Libraries that may not be used:
Libraries under consideration:
Usage as of 2008-11-05
Boost Libraries in LSST
- algorithm/string (Status: unknown)
- daf/base
- any (Status: approved)
- afw daf/base daf/data pex/logging pex/policy utils
- config (Status: unknown) Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.
- pex/policy
- cstdint (Status: unknown) The typedef's useful for writing portable code that requires certain integer widths.
- afw detection ip/diffim ip/isr
- filesystem TR2 (Status: unknown) Portable paths, iteration over directories, and other useful filesystem operations.
- afw pex/policy
- format TR2 (Status: approved)
- afw daf/base daf/data detection ip/diffim ip/isr pex/exceptions pex/logging utils
- gil (Status: approved)
- afw
- iterator/zip_iterator (Status: unknown)
- afw
- lambda TR2 (Status: approved)
- afw
- mpl/assert (Status: unknown)
- afw
- mpl/at (Status: unknown)
- afw
- mpl/bool (Status: unknown)
- afw
- mpl/for_each (Status: unknown)
- afw
- mpl/or (Status: unknown)
- afw
- mpl/vector (Status: unknown)
- afw
- multi_index (Status: unknown) Containers with multiple STL-compatible access interfaces
- utils
- multi_index_container (Status: unknown)
- utils
- regex TR1 (Status: unknown) Perl-style regular expressions.
- daf/base daf/persistence pex/logging pex/policy utils
- scoped_ptr TR2 (Status: unknown) Stores a pointer to a dynamically allocated object.
- daf/base daf/persistence pex/policy
- serialization (Status: unknown) Serialization for persistence and marshalling. serialization archives
- Text (or XML) archives render data as text (or XML) and are portable across platforms. :: afw daf/persistence
- shared_array TR2 (Status: approved)
- daf/persistence
- shared_ptr TR1 (Status: approved)
- afw daf/base daf/data daf/persistence detection ip/diffim ip/isr pex/exceptions pex/logging pex/policy security
- static_assert C++0X (Status: unknown) Static assertions (compile time assertions).
- afw pex/policy
- test (Status: approved)
- afw
- throw_exception (Status: unknown) Intended to be used in Boost libraries that need to throw exceptions, but support configurations and platforms where exceptions aren't available
- pex/policy
- timer (Status: unknown) Event timer, progress timer, and progress display classes.
- ip/diffim
- tokenizer (Status: unknown) Break of a string or other character sequence into a series of tokens. Proposal for inclusion: TokenizerProposal
- pex/logging
- type_traits TR1 (Status: unknown) Templates for fundamental properties of types.
- afw pex/policy
Attachments
-
boostUse.20080507
(15.5 kB) - added by robyn
8 months ago.
Sorted list of (boost include X LSST source)
