Skip to content
Search

Boost

lastmod 2022-01-13created 2014-01-0444 edits

The Boost libraries are lightweight C++ source libraries for programmers that have been vetted (or are being vetted).

The libraries aim to be broadly and usefully applicable across many areas of application development. Boost is also designed to work very well with the standard C++ library (STL). In addition, the Boost license lets you use the libraries for free, whether commercially or non-commercially, so there is no cost burden.

Quick installation

Installation with MinGW (or GCC) is as follows. (If compiling with MinGW, use the Visual Studio command prompt as the console window so that ml.exe can be found.)

bjam.exe --prefix=d:\down\boost toolset=gcc address-model=32 --build-type=complete install

For reference, below is an example of installing on CentOS with b2.

sudo ./b2 link=static,shared variant=release threading=multi install --prefix=/usr --without-python

Below is an example using layout. Note that -j8 is the same as in make and builds with multiple threads.

./b2 --prefix=$LOCAL_DIR --layout=system -j8 variant=release link=static install

Windows

See Boost:WindowsBuildScript for building on Windows.

  • BOOST_ALL_DYN_LINK: Dynamically links all Boost libraries. In this case, you must link the libraries you use.
  • BOOST_ALL_NO_LIB: Statically links all Boost libraries.

Category

Build Options

--layout=<layout>
Selects the library file name layout. The options are versioned, tagged, and system.
References are at the following addresses.
http://www.boost.org/doc/libs/1_33_1/Jamfile
http://stackoverflow.com/questions/1768943/building-boost-on-linux-library-names
http://stackoverflow.com/questions/8940249/boost-how-bjam-constructs-a-library-name
Also, when compiling with system, options such as variant and link must not be given multiple values. 2

runtime-link specifies how the C runtime library is linked. link specifies the form of the build output: static (lib) or shared (dll).

Note that if the two options above differ, the build exits with errors like the following.

error: link=shared together with runtime-link=static is not allowed
error: such property combination is either impossible 
error: or too dangerious to be of any use

Library List

Boost Library List

Math and numerics

Data structures

Containers

Function objects and
higher-order programming

Miscellaneous

  • Accumulators
  • Geometry
  • Integer
  • Interval
  • Math
  • Mmath Common Factor
  • Math Octonion
  • Math Quaternion
  • Math/Special Functions
  • Math/Statistical Distributions
  • Multi-Array
  • Multiprecision
  • Numeric conversion
  • Odeint
  • Operators
  • Polygon
  • Random
  • Ratio
  • Rational
  • uBLAS
  • Any
  • Bitmap
  • Compressed Pair
  • Container
  • Fusion
  • Geometry
  • Heap
  • ICL
  • Multi-Index
  • Pointer Container
  • Polygon
  • Property Tree
  • Tuple
  • Uuid
  • Variant
  • Bind
  • Function
  • Functional
  • Functional/Factory
  • Functional/Forward
  • Functional/Hash
  • Functional/Overloaded Function
  • Lambda
  • Local Function
  • Member Function
  • Phoenix
  • Ref
  • Result Of
  • Signals
  • Signals2
  • Utility

Generic Programming

Template Metaprogramming

String and text processing

Concurrent Programming

Algorithms

  • Call Traits
  • Concept Check
  • Enable If
  • Function Types
  • GIL
  • In Place Factory
  • Operators
  • Property Map
  • Static Assert
  • TTI
  • Type Traits
  • Algorithm
  • Foreach
  • Geometry
  • GIL
  • Graph
  • Min-Max
  • Range
  • String Algo
  • Utility

Language Features Emulation

System

Domain Specific

Patterns and Idioms

Input/Output

  • Exception
  • Foreach
  • Move
  • Parameter
  • Scope Exit
  • Type Index
  • Typeof

Iterators

Correctness and testing

Memory

Programming Interfaces

State Machines

  • Function
  • Parameter
  • Meta State Machine
  • Statechart

Preprocessor Metaprogramming

Broken compiler workarounds

Parsing

Image processing

Inter-language support

  • GIL

ETC

Troubleshooting

boost::exception_detail::error_info_injector

The following error message may be printed when the program exits.

"boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >"

In this case, use a try ... catch block as follows.

try {
    s.connect(*iterator);
} catch (boost::system::system_error const& e) {
    std::cout << "Warning: could not connect : " << e.what() << std::endl;
}

Local Download

Boost 1.60.0
Boost_1_60_0.7z

Favorite site

For Android

Tutorials

Boost build

Guide

References


  1. Viper-how_to_use_bjam.pdf ↩

  2. Because the file name is used as the representative name, multiple library file names collide. For the same reason, be careful with --build-type=complete as well. ↩

  3. Boost_library_list-aronze_egloos_com.zip ↩

  4. Jacking75_cafe24_com-boost-ko.zip ↩

  5. Www.viper.pe.kr.zip (see cgi-bin/moin.cgi/Boost.html) ↩

  6. The_Boost_C++_Libraries.zip ↩

author Zer0 sitemap