Boost

From RogueBasin
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Boost
Library project
Developer BOOST.ORG
Released
Updated May 3 2009 (1.39.0)
Status Stable
Licensing Boost License
P. Language C++
Platforms Windows, Linux
Dependencies
Official site of Boost


The Boost C++ libraries ( http://www.boost.org/ ) are licensed under the Boost License.

To a non-lawyer, the Boost License is about as permissive as a revised BSD-style license but takes up far less text. It intentionally allows reusing the source code in closed-source and commercial projects.

Boost Library features that are relatively easy to use, and remedy various issues with C++

  • Static Assertions: allows converting compile-time invariant violations into compile errors. Usage is similar to assert. This is likely to be obsoleted by a revision of the C++ language.
  • Call Traits: automatic selection of reasonably efficient types for various intentions. E.g., boost::call_traits<>::param_type selects the most efficient type for the effect of passing by value.
  • Enable/Disable If : allows conditional definition of templates. Most useful in conjunction with the STL numeric_traits template and Boost's Type Traits library, for imposing type constraints on template parameters (partially replicating C# type constraints on generic parameters)

Note that fully using the last two points require Substitution Failure Is Not An Error for templates, which does require a relatively up to date compiler.

Boost Library features that apply to C

  • Preprocessor : enables typical control structures (if-then-else, looping over the values of a list or sequence) for the C preprocessor.