Dictionary
Thesaurus
Reference
Translate
Web
Boost Library
1 reference results for: Boost library
Wikipedia

The Boost C++ Libraries are a collection of peer-reviewed, open source libraries that extend the functionality of C++. Most of the libraries are licensed under the Boost Software License, designed to allow Boost to be used with both open and closed source projects. Many of Boost's founders are on the C++ standard committee and several Boost libraries have been accepted for incorporation into the Technical Report 1 of C++0x.

The libraries are aimed at a wide range of C++ users and application domains. They range from general-purpose libraries like the smart_ptr library, to OS abstractions like FileSystem, to libraries primarily aimed at other library developers and advanced C++ users, like the MPL

In order to ensure efficiency and flexibility, Boost makes extensive use of templates. Boost has been a source of extensive work and research into generic programming and metaprogramming in C++.

Examples

The current Boost release contains 87 individual libraries, including the following three:

Linear algebra – uBLAS

Boost includes the uBLAS linear algebra library, with BLAS support for vectors and matrices.

  • Example showing how to multiply a vector with a matrix:

  1. include
  2. include
  3. include
  4. include

using namespace boost::numeric::ublas;

/* "y = Ax" example */ int main {

     vector x (2);
     x(0) = 1; x(1) = 2;
     matrix A(2,2);
     A(0,0) = 0; A(0,1) = 1;
     A(1,0) = 2; A(1,1) = 3;

     vector y = prod(A, x);

     std::cout << y << std::endl;
     return 0;
}

Generating random numbers – Boost.Random

Boost provides distribution-independent pseudorandom number generators and PRNG-independent probability distributions, which are combined to build a concrete generator.

  1. include
  2. include

using namespace boost;

double SampleNormal (double mean, double sigma) {

   // Create a Mersenne twister random number generator
   // that is seeded once with #seconds since 1970
   static mt19937 rng(static_cast (std::time(0)));

   // select Gaussian probability distribution
   normal_distribution norm_dist(mean, sigma);

   // bind random number generator to distribution, forming a function
   variate_generator >  normal_sampler(rng, norm_dist);

   // sample from the distribution
   return normal_sampler();
} See Boost Random Number Library for more details.

Multithreading – Boost.Thread

Example code that demonstrates creation of threads:

  1. include
  2. include

using namespace std;

void hello_world() {

 cout << "Hello world, I'm a thread!" << endl;
}

int main(int argc, char* argv[]) {

 // start a new thread that calls the "hello_world" function
 boost::thread my_thread(&hello_world);
 // wait for the thread to finish
 my_thread.join();


 return 0;
}

Associated people

Original founders of Boost still active in the community include Beman Dawes and David Abrahams. Author of several books on C++, Nicolai Josuttis contributed the Boost array library in 2001. Around 3,000 people are subscribed to Boost mail-list and dozens of them are very active (as of 2007).

See also

  • Jam — Boost includes a package called Boost.Build, which uses a special version of Perforce Jam called Boost.Jam

References

External links

Share This:Share This: digg.comShare This: ma.gnolia.comShare This: www.stumbleupon.comShare This: del.icio.usShare This: FacebookShare This: favorites.live.comShare This: www.technorati.comShare This: furl.netShare This: myweb2.search.yahoo.comShare This: www.google.com