Version 1.47.0
Version 1.47.0
July 11th, 2011 22:19 GMT
Platform | File |
---|---|
unix | boost_1_47_0.tar.bz2 |
boost_1_47_0.tar.gz | |
windows | boost_1_47_0.7z |
boost_1_47_0.zip |
New Libraries
-
Chrono: Useful time utilities, from Vicente J. Botet Escribá.
-
Geometry: Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot.
-
Phoenix: Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller.
-
Ratio: Compile time rational arithmetic, from Vicente J. Botet Escribá.
Updated Libraries
-
Accumulators:
-
New statistical accumulators:
sum_kahan
,sum_of_weights_kahan
,sum_of_variates_kahan
.
-
-
Asio:
-
Many new features and improvements:
-
Signal handling.
-
A debugging aid for asynchronous programs.
-
Timeouts on socket iostreams.
-
Composed connect operations.
-
Rewritten SSL implementation.
-
C++0x move support.
-
Compatibility with POSIX
fork()
. -
... and much more. See the Revision History in the Boost.Asio documentation for more details.
-
-
-
Dynamic Bitset:
-
Fixed bug #5439
-
-
Foreach:
-
Use rvalue refs on supporting compilers for const rvalue detection.
-
-
Graph:
-
Bug fixes.
-
Remove deprecated function
kolmogorov_max_flow
, useboykov_kolmogorov_max_flow
instead. -
Removed
<boost/graph/detail/is_same.hpp>
header since its functionality is in Boost.Type_Traits.
-
-
Math:
-
Added changesign function to sign.hpp to facilitate addition of nonfinite facets.
-
Addition of nonfinite facets from Johan Rade, with tests, examples of use for C99 format infinity and NaN, and documentation.
-
Added tests and documentation of changesign from Johan Rade.
-
-
Meta State Machine:
-
Added a
stop()
method in the back-end. -
Added partial support for Boost.Phoenix functors in eUML.
-
Added the possibility to choose when state switching occurs.
-
-
MultiIndex:
-
Fixed an ADL problem in
composite_key_compare
related with Boost.Ref. -
Maintenance fixes.
-
-
Proto:
-
Pre-preprocessed for better compile times.
-
Default preprocessor limits raised:
-
Max expression arity (
BOOST_PROTO_MAX_ARITY
) bumped from 5 to 10. -
Max function call arity (
BOOST_PROTO_MAX_FUNCTION_CALL_ARITY
) bumped from 5 to 10. -
Max logical operator arity (
BOOST_PROTO_MAX_LOGICAL_ARITY
) bumped from 8 to 10.
-
-
Better integration of
proto::basic_expr
to avoid accidental needless instantiations ofproto::expr
.
-
-
Random:
-
Synchronized with the new standard.
-
Many new distributions added:
chi_squared_distribution
,negative_binomial_distribution
,fisher_f_distribution
,student_t_distribution
,weibull_distribution
,extreme_value_distribution
,discrete_distribution
,piecewise_constant_distribution
,piecewise_liear_distribution
-
Renamed
uniform_int
anduniform_real
touniform_int_distribution
anduniform_real_distribution
. -
Added members to all distributions:
param_type
,param
, stream operators, comparison operators,min
andmax
. -
Allow distributions to be used directly with generators without use of
variate_generator
. -
Changed the meaning of the parameters of
geometric_distribution
andlognormal_distribution
. -
Added a second parameter to
gamma_distribution
. -
Added
seed_seq
and added the corresponding constructors andseed
overloads the generators. -
Added
generate_canonical
. -
Renamed the engine tempates. e.g.
mersenne_twister
becomesmersenne_twister_engine
. -
New engine adapter
independent_bits_engine
. -
Added new predefined engine typedefs:
mt19937_64
,ranlux[24|48][_base]
,knuth_b
. -
Updated seeding algorithms.
-
Added
discard
-
Use unsigned types instead of signed types in all the predefined engines.
-
-
Bug fixes:
-
linear_congruential_engine
could assert because the modular arithmetic was not implemented in all cases.shuffle_output
, now calledshuffle_order_engine
, could cause integer overflow. These cases were not triggered by any predefined engines. -
uniform_small_int
now actually behaves as documented.
-
-
New efficient algorithms for
binomial_distribution
andpoisson_distribution
. -
Moved all features into
namespace boost::random
-
Backwards compatibility issues:
-
The seeding algorithms have changed. This was unavoidable for compatibility with the standard. Not to mention that some of the existing algorithms were weird and inconsistent.
-
Seeding with an integer: The behaviour should be unchanged for most generators except
lagged_fibonacci
andsubtract_with_carry
(and thusranlux
). -
Seeding a generator with another generator: This has been enabled by making all all generators models of
SeedSeq
. Therefore, if you seed a Boost.Random generator with a non Boost.Random generator, your code will no longer compile. The algorithm has changed, so code using this seeding method will yield different values. -
Seeding a generator from a pair of iterators: This implicitly assumed that the elements were 32-bit integers in some places, but not everywhere. I've added this requirement everywhere and updated the algorithms accordingly. The behaviour of generators with a
value_type
no more than 32 bits should be unchanged.
-
-
Renaming:
-
Whenever a class was renamed, there is a wrapper with the old name. There are also using declarations in namespace boost for everything that was moved.
-
The names of a few accessors in the distributions changed. Both the old and the new names are allowed.
-
-
geometric_distribution
andlognormal_distribution
: The behaviour is different at runtime.boost::geometric_distribution
andboost::lognormal_distribution
provide the old behaviour,boost::random::geometric_distribution
andboost::random::lognormal_distribution
provide the new behaviour. -
Streaming: gamma_distribution has a new parameter, thus text saved with the old version will not readable by the new version.
-
variate_generator
is now a simple pass through wrapper. Code that assumes that it will adjust the generator's result type to match the distribution will no longer work. This is not an issue with any of the distributions provided by Boost.Random. -
Return types: The
result_types
of some generators have changed slightly. Some signed types have changed to unsigned to match the standard. -
has_fixed_range
: This is now always false, as it doesn't appear to be very useful and is excessively cumbersome. Anything that was accessingconst_min
andconst_max
without first checkinghas_fixed_range
was incorrect to begin with.
-
-
-
Spirit:
-
Spirit V2.5, see the 'What's New' section for details.
-
Build System
-
The official name of Boost.Build executable was changed to
b2
. The bootstrap scripts create a copy with the old namebjam
to prevent third-party build scripts from failing.
Updated Tools
-
BoostBook:
-
Handle doxygen tags:
\see
,tparam
,ref
(for classes only). -
Support note for classes as well as functions.
-
-
Quickbook:
-
Generate consistent ids for headings.
-
Improved unicode support for windows.
-
Warn about windows paths, as they aren't portable.
-
Reverse deprecation of
[br]
. -
Support date ranges and comma seperated clauses in copyright attributes.
-
Improved delimeter checking for simple markup (e.g.
*bold*
). -
Pass-thru comments in code snippets.
-
__FILENAME__
macro now generates relative paths. -
Allow quickbook escapes inside comments in syntax highlighted code.
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
LLVM Clang 2.8
-
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0, 4.6.1
-
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
-
Intel 12.0
-
-
OS X:
-
Apple Clang 2.1
-
Intel 11.1
-
GCC: 4.2.1, 4.4.4
-
GCC, C++0x mode: 4.4.4
-
-
Windows:
-
Visual C++ 7.1, 9.0, 10.0
-
GCC, mingw: 4.4.0
-
-
FreeBSD:
-
GCC 4.2.1, 64 bit
-
-
QNX:
-
QCC
-
Boost's additional test compilers include:
-
Linux:
-
Clang from subversion, with GNU libstdc++.
-
LLVM Clang 2.8
-
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0, 4.6.1
-
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
-
pgCC: 11.2
-
Intel: 10.1, 11.0, 11.1, 12.0
-
PathScale: 3.2
-
-
OS X:
-
Clang from subversion, with GNU libstdc++.
-
Intel 11.1
-
GCC: 4.4.4
-
GCC, C++0x mode: 4.4.4
-
-
Windows:
-
Visual C++ 7.1, 9.0, 10.0
-
Visual C++ with STLport: 9.0
-
Visual C++, Windows Mobile 5, with STLport: 9.0
-
GCC, mingw: 4.5.2
-
GCC, C++0x mode, mingw: 4.5.2
-
-
AIX:
-
IBM XL C/C++ Enterprise Edition, V11.1.0.0
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release.