blob: ef825854dc1c651be9ed4c8fae8c3f337b0e9f9e [file] [log] [blame]
[section:threads Thread Safety]
The library is fully thread safe and re-entrant provided the function
and class templates in the library are instantiated with
built-in floating point types: i.e. the types `float`, `double`
and `long double`.
However, the library [*is not thread safe] when
used with user-defined (i.e. class type) numeric types.
The reason for the latter limitation is the need to
initialise symbolic constants using constructs such as:
static const T coefficient_array = { ... list of values ... };
Which is always thread safe when T is a built-in floating point type,
but not when T is a user defined type: as in this case there
is a need for T's constructors to be run, leading to potential
race conditions.
This limitation may be addressed in a future release.
[endsect] [/section:threads Thread Safety]
[/
Copyright 2006 John Maddock and Paul A. Bristow.
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt).
]