diff --git a/doc/html/boost_config/acknowledgements.html b/doc/html/boost_config/acknowledgements.html index 347924f4..87d6546a 100644 --- a/doc/html/boost_config/acknowledgements.html +++ b/doc/html/boost_config/acknowledgements.html @@ -2,8 +2,8 @@ Acknowledgements - - + + @@ -19,9 +19,9 @@
-PrevUpHome +PrevUpHome
-
+
@@ -55,7 +55,7 @@
-PrevUpHome +PrevUpHome
diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index 61b40693..b684de83 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -2,8 +2,8 @@ Boost Macro Reference - - + + @@ -20,9 +20,9 @@
-PrevUpHomeNext +PrevUpHomeNext
-
+
@@ -44,7 +44,7 @@

-
+

Macros that describe defects @@ -62,240 +62,240 @@ -

- Macro -

+

+ Macro +

-

- Section -

+

+ Section +

-

- Description -

+

+ Description +

-

- BOOST_BCB_PARTIAL_SPECIALIZATION_BUG -

+

+ BOOST_BCB_PARTIAL_SPECIALIZATION_BUG +

-

- Compiler -

+

+ Compiler +

-

- The compiler exibits certain partial specialisation bug - probably - Borland C++ Builder specific. -

+

+ The compiler exibits certain partial specialisation bug - probably + Borland C++ Builder specific. +

-

- BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -

+

+ BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +

-

- Compiler -

+

+ Compiler +

-

- Argument dependent lookup fails if there is a using declaration for - the symbol being looked up in the current scope. For example, using - boost::get_pointer; prevents ADL from - finding overloads of get_pointer - in namespaces nested inside boost (but not elsewhere). Probably Borland - specific. -

+

+ Argument dependent lookup fails if there is a using declaration + for the symbol being looked up in the current scope. For example, + using boost::get_pointer; prevents ADL from + finding overloads of get_pointer + in namespaces nested inside boost (but not elsewhere). Probably + Borland specific. +

-

- BOOST_NO_ADL_BARRIER -

+

+ BOOST_NO_ADL_BARRIER +

-

- Compiler -

+

+ Compiler +

-

- The compiler locates and searches namespaces that it should *not* - in fact search when performing argument dependent lookup. -

+

+ The compiler locates and searches namespaces that it should *not* + in fact search when performing argument dependent lookup. +

-

- BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -

+

+ BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +

-

- Compiler -

+

+ Compiler +

-

- Compiler does not implement argument-dependent lookup (also named - Koenig lookup); see std::3.4.2 [basic.koenig.lookup] -

+

+ Compiler does not implement argument-dependent lookup (also named + Koenig lookup); see std::3.4.2 [basic.koenig.lookup] +

-

- BOOST_NO_AUTO_PTR -

+

+ BOOST_NO_AUTO_PTR +

-

- Standard library -

+

+ Standard library +

-

- If the compiler / library supplies non-standard or broken std::auto_ptr. -

+

+ If the compiler / library supplies non-standard or broken std::auto_ptr. +

-

- BOOST_NO_COMPLETE_VALUE_INITIALIZATION -

+

+ BOOST_NO_COMPLETE_VALUE_INITIALIZATION +

-

- Compiler -

+

+ Compiler +

-

- Compiler has not completely implemented value-initialization. See - also The - Utility/Value Init docs -

+

+ Compiler has not completely implemented value-initialization. See + also The + Utility/Value Init docs +

-

- BOOST_NO_CTYPE_FUNCTIONS -

+

+ BOOST_NO_CTYPE_FUNCTIONS +

-

- Platform -

+

+ Platform +

-

- The Platform does not provide functions for the character-classifying - operations <ctype.h> and <cctype>, - only macros. -

+

+ The Platform does not provide functions for the character-classifying + operations <ctype.h> and <cctype>, + only macros. +

-

- BOOST_NO_CV_SPECIALIZATIONS -

+

+ BOOST_NO_CV_SPECIALIZATIONS +

-

- Compiler -

+

+ Compiler +

-

- If template specialisations for cv-qualified types conflict with - a specialisation for a cv-unqualififed type. -

+

+ If template specialisations for cv-qualified types conflict with + a specialisation for a cv-unqualififed type. +

-

- BOOST_NO_CV_VOID_SPECIALIZATIONS -

+

+ BOOST_NO_CV_VOID_SPECIALIZATIONS +

-

- Compiler -

+

+ Compiler +

-

- If template specialisations for cv-void types conflict with a specialisation - for void. -

+

+ If template specialisations for cv-void types conflict with a specialisation + for void. +

-

- BOOST_NO_CWCHAR -

+

+ BOOST_NO_CWCHAR +

-

- Platform -

+

+ Platform +

-

- The Platform does not provide <wchar.h> - and <cwchar>. -

+

+ The Platform does not provide <wchar.h> + and <cwchar>. +

-

- BOOST_NO_CWCTYPE -

+

+ BOOST_NO_CWCTYPE +

-

- Platform -

+

+ Platform +

-

- The Platform does not provide <wctype.h> - and <cwctype>. -

+

+ The Platform does not provide <wctype.h> + and <cwctype>. +

-

- BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -

+

+ BOOST_NO_DEPENDENT_NESTED_DERIVATIONS +

-

- Compiler -

+

+ Compiler +

-

- The compiler fails to compile a nested class that has a dependent - base class: +

+ The compiler fails to compile a nested class that has a dependent + base class:

template<typename T>
 struct foo : {
@@ -303,106 +303,106 @@
    struct bar : public U {};
 

- }; -

+ }; +

-

- BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -

+

+ BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS +

-

- Compiler -

+

+ Compiler +

-

- Template value parameters cannot have a dependent type, for example: - +

+ Template value parameters cannot have a dependent type, for example: +

template<class T, typename T::type value> 
 class X { ... };
 

-

+

-

- BOOST_NO_EXCEPTION_STD_NAMESPACE -

+

+ BOOST_NO_EXCEPTION_STD_NAMESPACE +

-

- Standard Library -

+

+ Standard Library +

-

- The standard library does not put some or all of the contents of - <exception> in namespace std. -

+

+ The standard library does not put some or all of the contents of + <exception> in namespace std. +

-

- BOOST_NO_EXCEPTIONS -

+

+ BOOST_NO_EXCEPTIONS +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not support exception handling (this setting is - typically required by many C++ compilers for embedded platforms). - Note that there is no requirement for boost libraries to honor this - configuration setting - indeed doing so may be impossible in some - cases. Those libraries that do honor this will typically abort if - a critical error occurs - you have been warned! -

+

+ The compiler does not support exception handling (this setting + is typically required by many C++ compilers for embedded platforms). + Note that there is no requirement for boost libraries to honor + this configuration setting - indeed doing so may be impossible + in some cases. Those libraries that do honor this will typically + abort if a critical error occurs - you have been warned! +

-

- BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -

+

+ BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS +

-

- Compiler -

+

+ Compiler +

-

- Can only use deduced template arguments when calling function template - instantiations. -

+

+ Can only use deduced template arguments when calling function template + instantiations. +

-

- BOOST_NO_FUNCTION_TEMPLATE_ORDERING -

+

+ BOOST_NO_FUNCTION_TEMPLATE_ORDERING +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not perform function template ordering or its function - template ordering is incorrect. +

+ The compiler does not perform function template ordering or its + function template ordering is incorrect.

// #1
 template<class T> void f(T);
@@ -415,876 +415,875 @@
 f(&bar); // should choose #2.
 

-

+

-

- BOOST_NO_INCLASS_MEMBER_INITIALIZATION -

+

+ BOOST_NO_INCLASS_MEMBER_INITIALIZATION +

-

- Compiler -

+

+ Compiler +

-

- Compiler violates std::9.4.2/4. -

+

+ Compiler violates std::9.4.2/4. +

-

- BOOST_NO_INTRINSIC_WCHAR_T -

+

+ BOOST_NO_INTRINSIC_WCHAR_T +

-

- Compiler -

+

+ Compiler +

-

- The C++ implementation does not provide wchar_t, - or it is really a synonym for another integral type. Use this symbol - to decide whether it is appropriate to explicitly specialize a template - on wchar_t if there - is already a specialization for other integer types. -

+

+ The C++ implementation does not provide wchar_t, + or it is really a synonym for another integral type. Use this symbol + to decide whether it is appropriate to explicitly specialize a + template on wchar_t + if there is already a specialization for other integer types. +

-

- BOOST_NO_IOSFWD -

+

+ BOOST_NO_IOSFWD +

-

- std lib -

+

+ std lib +

-

- The standard library lacks <iosfwd>. -

+

+ The standard library lacks <iosfwd>. +

-

- BOOST_NO_IOSTREAM -

+

+ BOOST_NO_IOSTREAM +

-

- std lib -

+

+ std lib +

-

- The standard library lacks <iostream>, - <istream> or <ostream>. -

+

+ The standard library lacks <iostream>, + <istream> or <ostream>. +

-

- BOOST_NO_IS_ABSTRACT -

+

+ BOOST_NO_IS_ABSTRACT +

-

- Compiler -

+

+ Compiler +

-

- The C++ compiler does not support SFINAE with abstract types, this - is covered by Core - Language DR337, but is not part of the current standard. - Fortunately most compilers that support SFINAE also support this - DR. -

+

+ The C++ compiler does not support SFINAE with abstract types, this + is covered by Core + Language DR337, but is not part of the current standard. + Fortunately most compilers that support SFINAE also support this + DR. +

-

- BOOST_NO_LIMITS -

+

+ BOOST_NO_LIMITS +

-

- Standard library -

+

+ Standard library +

-

- The C++ implementation does not provide the <limits> - header. Never check for this symbol in library code; always include - <boost/limits.hpp>, which guarantees to provide - std::numeric_limits. -

+

+ The C++ implementation does not provide the <limits> + header. Never check for this symbol in library code; always include + <boost/limits.hpp>, which guarantees to provide + std::numeric_limits. +

-

- BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -

+

+ BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +

-

- Standard library -

+

+ Standard library +

-

- Constants such as numeric_limits<T>::is_signed - are not available for use at compile-time. -

+

+ Constants such as numeric_limits<T>::is_signed + are not available for use at compile-time. +

-

- BOOST_NO_LONG_LONG_NUMERIC_LIMITS -

+

+ BOOST_NO_LONG_LONG_NUMERIC_LIMITS +

-

- Standard library -

+

+ Standard library +

-

- There is no specialization for numeric_limits<long - long> - and numeric_limits<unsigned - long long>. <boost/limits.hpp> - will then add these specializations as a standard library "fix" - only if the compiler supports the long - long datatype. -

+

+ There is no specialization for numeric_limits<long + long> + and numeric_limits<unsigned + long long>. <boost/limits.hpp> + will then add these specializations as a standard library "fix" + only if the compiler supports the long + long datatype. +

-

- BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -

+

+ BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not support the specialization of individual member - functions of template classes. -

+

+ The compiler does not support the specialization of individual + member functions of template classes. +

-

- BOOST_NO_MEMBER_TEMPLATE_KEYWORD -

+

+ BOOST_NO_MEMBER_TEMPLATE_KEYWORD +

-

- Compiler -

+

+ Compiler +

-

- If the compiler supports member templates, but not the template keyword - when accessing member template classes. -

+

+ If the compiler supports member templates, but not the template + keyword when accessing member template classes. +

-

- BOOST_NO_MEMBER_TEMPLATE_FRIENDS -

+

+ BOOST_NO_MEMBER_TEMPLATE_FRIENDS +

-

- Compiler -

+

+ Compiler +

-

- Member template friend syntax (template<class - P> - friend class - frd;) - described in the C++ Standard, 14.5.3, not supported. -

+

+ Member template friend syntax (template<class + P> + friend class + frd;) + described in the C++ Standard, 14.5.3, not supported. +

-

- BOOST_NO_MEMBER_TEMPLATES -

+

+ BOOST_NO_MEMBER_TEMPLATES +

-

- Compiler -

+

+ Compiler +

-

- Member template functions not fully supported. -

+

+ Member template functions not fully supported. +

-

- BOOST_NO_MS_INT64_NUMERIC_LIMITS -

+

+ BOOST_NO_MS_INT64_NUMERIC_LIMITS +

-

- Standard library -

+

+ Standard library +

-

- There is no specialization for numeric_limits<__int64> and numeric_limits<unsigned - __int64>. - <boost/limits.hpp> will then add these specializations - as a standard library "fix", only if the compiler supports - the __int64 datatype. -

+

+ There is no specialization for numeric_limits<__int64> and numeric_limits<unsigned + __int64>. + <boost/limits.hpp> will then add these specializations + as a standard library "fix", only if the compiler supports + the __int64 datatype. +

-

- BOOST_NO_NESTED_FRIENDSHIP -

+

+ BOOST_NO_NESTED_FRIENDSHIP +

-

- Compiler -

+

+ Compiler +

-

- Compiler doesn't allow a nested class to access private members of - its containing class. Probably Borland/CodeGear specific. -

+

+ Compiler doesn't allow a nested class to access private members + of its containing class. Probably Borland/CodeGear specific. +

-

- BOOST_NO_OPERATORS_IN_NAMESPACE -

+

+ BOOST_NO_OPERATORS_IN_NAMESPACE +

-

- Compiler -

+

+ Compiler +

-

- Compiler requires inherited operator friend functions to be defined - at namespace scope, then using'ed to boost. Probably GCC specific. - See <boost/operators.hpp> - for example. -

+

+ Compiler requires inherited operator friend functions to be defined + at namespace scope, then using'ed to boost. Probably GCC specific. + See <boost/operators.hpp> for example. +

-

- BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS -

+

+ BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not correctly handle partial specializations which - depend upon default arguments in the primary template. -

+

+ The compiler does not correctly handle partial specializations + which depend upon default arguments in the primary template. +

-

- BOOST_NO_POINTER_TO_MEMBER_CONST -

+

+ BOOST_NO_POINTER_TO_MEMBER_CONST +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not correctly handle pointers to const member functions, - preventing use of these in overloaded function templates. See <boost/functional.hpp> - for example. -

+

+ The compiler does not correctly handle pointers to const member + functions, preventing use of these in overloaded function templates. + See <boost/functional.hpp> for example. +

-

- BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -

+

+ BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS +

-

- Compiler -

+

+ Compiler +

-

- Pointers to members don't work when used as template parameters. -

+

+ Pointers to members don't work when used as template parameters. +

-

- BOOST_NO_PRIVATE_IN_AGGREGATE -

+

+ BOOST_NO_PRIVATE_IN_AGGREGATE +

-

- Compiler -

+

+ Compiler +

-

- The compiler misreads 8.5.1, treating classes as non-aggregate if - they contain private or protected member functions. -

+

+ The compiler misreads 8.5.1, treating classes as non-aggregate + if they contain private or protected member functions. +

-

- BOOST_NO_RTTI -

+

+ BOOST_NO_RTTI +

-

- Compiler -

+

+ Compiler +

-

- The compiler may (or may not) have the typeid operator, but RTTI - on the dynamic type of an object is not supported. -

+

+ The compiler may (or may not) have the typeid operator, but RTTI + on the dynamic type of an object is not supported. +

-

- BOOST_NO_SFINAE -

+

+ BOOST_NO_SFINAE +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not support the "Substitution Failure Is Not - An Error" meta-programming idiom. -

+

+ The compiler does not support the "Substitution Failure Is + Not An Error" meta-programming idiom. +

-

- BOOST_NO_SFINAE_EXPR -

+

+ BOOST_NO_SFINAE_EXPR +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not support usage of SFINAE with arbitrary expressions. -

+

+ The compiler does not support usage of SFINAE with arbitrary expressions. +

-

- BOOST_NO_STD_ALLOCATOR -

+

+ BOOST_NO_STD_ALLOCATOR +

-

- Standard library -

+

+ Standard library +

-

- The C++ standard library does not provide a standards conforming - std::allocator. -

+

+ The C++ standard library does not provide a standards conforming + std::allocator. +

-

- BOOST_NO_STD_DISTANCE -

+

+ BOOST_NO_STD_DISTANCE +

-

- Standard library -

+

+ Standard library +

-

- The platform does not have a conforming version of std::distance. -

+

+ The platform does not have a conforming version of std::distance. +

-

- BOOST_NO_STD_ITERATOR -

+

+ BOOST_NO_STD_ITERATOR +

-

- Standard library -

+

+ Standard library +

-

- The C++ implementation fails to provide the std::iterator - class. -

+

+ The C++ implementation fails to provide the std::iterator + class. +

-

- BOOST_NO_STD_ITERATOR_TRAITS -

+

+ BOOST_NO_STD_ITERATOR_TRAITS +

-

- Standard library -

+

+ Standard library +

-

- The compiler does not provide a standard compliant implementation - of std::iterator_traits. Note that the - compiler may still have a non-standard implementation. -

+

+ The compiler does not provide a standard compliant implementation + of std::iterator_traits. Note that the + compiler may still have a non-standard implementation. +

-

- BOOST_NO_STD_LOCALE -

+

+ BOOST_NO_STD_LOCALE +

-

- Standard library -

+

+ Standard library +

-

- The standard library lacks std::locale. -

+

+ The standard library lacks std::locale. +

-

- BOOST_NO_STD_MESSAGES -

+

+ BOOST_NO_STD_MESSAGES +

-

- Standard library -

+

+ Standard library +

-

- The standard library lacks a conforming std::messages - facet. -

+

+ The standard library lacks a conforming std::messages + facet. +

-

- BOOST_NO_STD_MIN_MAX -

+

+ BOOST_NO_STD_MIN_MAX +

-

- Standard library -

+

+ Standard library +

-

- The C++ standard library does not provide the min() and max() template functions that should - be in <algorithm>. -

+

+ The C++ standard library does not provide the min() and max() template functions that should + be in <algorithm>. +

-

- BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN -

+

+ BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN +

-

- Standard library -

+

+ Standard library +

-

- Defined if the standard library's output iterators are not assignable. -

+

+ Defined if the standard library's output iterators are not assignable. +

-

- BOOST_NO_STD_TYPEINFO -

+

+ BOOST_NO_STD_TYPEINFO +

-

- Standard library -

+

+ Standard library +

-

- The <typeinfo> header declares type_info - in the global namespace instead of namespace std. -

+

+ The <typeinfo> header declares type_info + in the global namespace instead of namespace std. +

-

- BOOST_NO_STD_USE_FACET -

+

+ BOOST_NO_STD_USE_FACET +

-

- Standard library -

+

+ Standard library +

-

- The standard library lacks a conforming std::use_facet. -

+

+ The standard library lacks a conforming std::use_facet. +

-

- BOOST_NO_STD_WSTREAMBUF -

+

+ BOOST_NO_STD_WSTREAMBUF +

-

- Standard library -

+

+ Standard library +

-

- The standard library's implementation of std::basic_streambuf<wchar_t> is either missing, incomplete, - or buggy. -

+

+ The standard library's implementation of std::basic_streambuf<wchar_t> is either missing, incomplete, + or buggy. +

-

- BOOST_NO_STD_WSTRING -

+

+ BOOST_NO_STD_WSTRING +

-

- Standard library -

+

+ Standard library +

-

- The standard library lacks std::wstring. -

+

+ The standard library lacks std::wstring. +

-

- BOOST_NO_STDC_NAMESPACE -

+

+ BOOST_NO_STDC_NAMESPACE +

-

- Compiler, Platform -

+

+ Compiler, Platform +

-

- The contents of C++ standard headers for C library functions (the - <c...> headers) have not been placed - in namespace std. This test is difficult - some libraries "fake" - the std C functions by adding using declarations to import them into - namespace std, unfortunately they don't necessarily catch all of - them... -

+

+ The contents of C++ standard headers for C library functions (the + <c...> headers) have not been placed + in namespace std. This test is difficult - some libraries "fake" + the std C functions by adding using declarations to import them + into namespace std, unfortunately they don't necessarily catch + all of them... +

-

- BOOST_NO_STRINGSTREAM -

+

+ BOOST_NO_STRINGSTREAM +

-

- Standard library -

+

+ Standard library +

-

- The C++ implementation does not provide the <sstream> - header. -

+

+ The C++ implementation does not provide the <sstream> + header. +

-

- BOOST_NO_SWPRINTF -

+

+ BOOST_NO_SWPRINTF +

-

- Platform -

+

+ Platform +

-

- The platform does not have a conforming version of swprintf. -

+

+ The platform does not have a conforming version of swprintf. +

-

- BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -

+

+ BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +

-

- Compiler -

+

+ Compiler +

-

- Class template partial specialization (14.5.4 [temp.class.spec]) - not supported. -

+

+ Class template partial specialization (14.5.4 [temp.class.spec]) + not supported. +

-

- BOOST_NO_TEMPLATED_IOSTREAMS -

+

+ BOOST_NO_TEMPLATED_IOSTREAMS +

-

- Standard library -

+

+ Standard library +

-

- The standard library does not provide templated iostream classes. -

+

+ The standard library does not provide templated iostream classes. +

-

- BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -

+

+ BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +

-

- Standard library -

+

+ Standard library +

-

- The standard library does not provide templated iterator constructors - for its containers. -

+

+ The standard library does not provide templated iterator constructors + for its containers. +

-

- BOOST_NO_TEMPLATE_TEMPLATES -

+

+ BOOST_NO_TEMPLATE_TEMPLATES +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not support template template parameters. -

+

+ The compiler does not support template template parameters. +

-

- BOOST_NO_TYPEID -

+

+ BOOST_NO_TYPEID +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not support the typeid operator at all. -

+

+ The compiler does not support the typeid operator at all. +

-

- BOOST_NO_TYPENAME_WITH_CTOR -

+

+ BOOST_NO_TYPENAME_WITH_CTOR +

-

- Compiler -

+

+ Compiler +

-

- The typename keyword cannot be used when creating a temporary of - a Dependent type. -

+

+ The typename keyword cannot be used when creating a temporary of + a Dependent type. +

-

- BOOST_NO_UNREACHABLE_RETURN_DETECTION -

+

+ BOOST_NO_UNREACHABLE_RETURN_DETECTION +

-

- Compiler -

+

+ Compiler +

-

- If a return is unreachable, then no return statement should be required, - however some compilers insist on it, while other issue a bunch of - warnings if it is in fact present. -

+

+ If a return is unreachable, then no return statement should be + required, however some compilers insist on it, while other issue + a bunch of warnings if it is in fact present. +

-

- BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -

+

+ BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +

-

- Compiler -

+

+ Compiler +

-

- The compiler will not accept a using declaration that brings a function - from a typename used as a base class into a derived class if functions - of the same name are present in the derived class. -

+

+ The compiler will not accept a using declaration that brings a + function from a typename used as a base class into a derived class + if functions of the same name are present in the derived class. +

-

- BOOST_NO_USING_TEMPLATE -

+

+ BOOST_NO_USING_TEMPLATE +

-

- Compiler -

+

+ Compiler +

-

- The compiler will not accept a using declaration that imports a template - class or function from another namespace. Originally a Borland specific - problem with imports to/from the global namespace, extended to MSVC6 - which has a specific issue with importing template classes (but not - functions). -

+

+ The compiler will not accept a using declaration that imports a + template class or function from another namespace. Originally a + Borland specific problem with imports to/from the global namespace, + extended to MSVC6 which has a specific issue with importing template + classes (but not functions). +

-

- BOOST_NO_VOID_RETURNS -

+

+ BOOST_NO_VOID_RETURNS +

-

- Compiler -

+

+ Compiler +

-

- The compiler does not allow a void function to return the result - of calling another void function. +

+ The compiler does not allow a void function to return the result + of calling another void function.

void f() {}
 void g() { return f(); }
 

-

+

@@ -1292,7 +1291,7 @@

-
+

Macros that describe optional features @@ -1309,881 +1308,882 @@ -

- Macro -

+

+ Macro +

-

- Section -

+

+ Section +

-

- Description -

+

+ Description +

-

- BOOST_HAS_BETHREADS -

+

+ BOOST_HAS_BETHREADS +

-

- Platform -

+

+ Platform +

-

- The platform supports BeOS style threads. -

+

+ The platform supports BeOS style threads. +

-

- BOOST_HAS_CLOCK_GETTIME -

+

+ BOOST_HAS_CLOCK_GETTIME +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX API clock_gettime. -

+

+ The platform has the POSIX API clock_gettime. +

-

- BOOST_HAS_DIRENT_H -

+

+ BOOST_HAS_DIRENT_H +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX header <dirent.h>. -

+

+ The platform has the POSIX header <dirent.h>. +

-

- BOOST_HAS_EXPM1 -

+

+ BOOST_HAS_EXPM1 +

-

- Platform -

+

+ Platform +

-

- The platform has the functions expm1, - expm1f and expm1l in <math.h> -

+

+ The platform has the functions expm1, + expm1f and expm1l in <math.h> +

-

- BOOST_HAS_FTIME -

+

+ BOOST_HAS_FTIME +

-

- Platform -

+

+ Platform +

-

- The platform has the Win32 API GetSystemTimeAsFileTime. -

+

+ The platform has the Win32 API GetSystemTimeAsFileTime. +

-

- BOOST_HAS_GETTIMEOFDAY -

+

+ BOOST_HAS_GETTIMEOFDAY +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX API gettimeofday. -

+

+ The platform has the POSIX API gettimeofday. +

-

- BOOST_HAS_HASH -

+

+ BOOST_HAS_HASH +

-

- Standard library -

+

+ Standard library +

-

- The C++ implementation provides the (SGI) hash_set and hash_map classes. - When defined, BOOST_HASH_SET_HEADER - and BOOST_HASH_LIST_HEADER - will contain the names of the header needed to access hash_set and - hash_map; BOOST_STD_EXTENSION_NAMESPACE - will provide the namespace in which the two class templates reside. -

+

+ The C++ implementation provides the (SGI) hash_set and hash_map + classes. When defined, BOOST_HASH_SET_HEADER + and BOOST_HASH_LIST_HEADER + will contain the names of the header needed to access hash_set + and hash_map; BOOST_STD_EXTENSION_NAMESPACE + will provide the namespace in which the two class templates reside. +

-

- BOOST_HAS_LOG1P -

+

+ BOOST_HAS_LOG1P +

-

- Platform -

+

+ Platform +

-

- The platform has the functions log1p, - log1pf and log1pl in <math.h>. -

+

+ The platform has the functions log1p, + log1pf and log1pl in <math.h>. +

-

- BOOST_HAS_MACRO_USE_FACET -

+

+ BOOST_HAS_MACRO_USE_FACET +

-

- Standard library -

+

+ Standard library +

-

- The standard library lacks a conforming std::use_facet, - but has a macro _USE(loc, Type) that does the job. This is primarily - for the Dinkumware std lib. -

+

+ The standard library lacks a conforming std::use_facet, + but has a macro _USE(loc, Type) that does the job. This is primarily + for the Dinkumware std lib. +

-

- BOOST_HAS_MS_INT64 -

+

+ BOOST_HAS_MS_INT64 +

-

- Compiler -

+

+ Compiler +

-

- The compiler supports the __int64 - data type. -

+

+ The compiler supports the __int64 + data type. +

-

- BOOST_HAS_NANOSLEEP -

+

+ BOOST_HAS_NANOSLEEP +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX API nanosleep. -

+

+ The platform has the POSIX API nanosleep. +

-

- BOOST_HAS_NL_TYPES_H -

+

+ BOOST_HAS_NL_TYPES_H +

-

- Platform -

+

+ Platform +

-

- The platform has an <nl_types.h>. -

+

+ The platform has an <nl_types.h>. +

-

- BOOST_HAS_NRVO -

+

+ BOOST_HAS_NRVO +

-

- Compiler -

+

+ Compiler +

-

- Indicated that the compiler supports the named return value optimization - (NRVO). Used to select the most efficient implementation for some - function. See <boost/operators.hpp> for example. -

+

+ Indicated that the compiler supports the named return value optimization + (NRVO). Used to select the most efficient implementation for some + function. See <boost/operators.hpp> for example. +

-

- BOOST_HAS_PARTIAL_STD_ALLOCATOR -

+

+ BOOST_HAS_PARTIAL_STD_ALLOCATOR +

-

- Standard Library -

+

+ Standard Library +

-

- The standard library has a partially conforming std::allocator - class, but without any of the member templates. -

+

+ The standard library has a partially conforming std::allocator + class, but without any of the member templates. +

-

- BOOST_HAS_PTHREAD_DELAY_NP -

+

+ BOOST_HAS_PTHREAD_DELAY_NP +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX API pthread_delay_np. -

+

+ The platform has the POSIX API pthread_delay_np. +

-

- BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -

+

+ BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX API pthread_mutexattr_settype. -

+

+ The platform has the POSIX API pthread_mutexattr_settype. +

-

- BOOST_HAS_PTHREAD_YIELD -

+

+ BOOST_HAS_PTHREAD_YIELD +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX API pthread_yield. -

+

+ The platform has the POSIX API pthread_yield. +

-

- BOOST_HAS_PTHREADS -

+

+ BOOST_HAS_PTHREADS +

-

- Platform -

+

+ Platform +

-

- The platform support POSIX style threads. -

+

+ The platform support POSIX style threads. +

-

- BOOST_HAS_SCHED_YIELD -

+

+ BOOST_HAS_SCHED_YIELD +

-

- Platform -

+

+ Platform +

-

- The platform has the POSIX API sched_yield. -

+

+ The platform has the POSIX API sched_yield. +

-

- BOOST_HAS_SGI_TYPE_TRAITS -

+

+ BOOST_HAS_SGI_TYPE_TRAITS +

-

- Compiler, Standard library -

+

+ Compiler, Standard library +

-

- The compiler has native support for SGI style type traits. -

+

+ The compiler has native support for SGI style type traits. +

-

- BOOST_HAS_STDINT_H -

+

+ BOOST_HAS_STDINT_H +

-

- Platform -

+

+ Platform +

-

- The platform has a <stdint.h> -

+

+ The platform has a <stdint.h> +

-

- BOOST_HAS_SLIST -

+

+ BOOST_HAS_SLIST +

-

- Standard library -

+

+ Standard library +

-

- The C++ implementation provides the (SGI) slist class. When defined, - BOOST_SLIST_HEADER - will contain the name of the header needed to access slist and BOOST_STD_EXTENSION_NAMESPACE - will provide the namespace in which slist - resides. -

+

+ The C++ implementation provides the (SGI) slist class. When defined, + BOOST_SLIST_HEADER + will contain the name of the header needed to access slist and BOOST_STD_EXTENSION_NAMESPACE + will provide the namespace in which slist + resides. +

-

- BOOST_HAS_STLP_USE_FACET -

+

+ BOOST_HAS_STLP_USE_FACET +

-

- Standard library -

+

+ Standard library +

-

- The standard library lacks a conforming std::use_facet, - but has a workaround class-version that does the job. This is primarily - for the STLport std lib. -

+

+ The standard library lacks a conforming std::use_facet, + but has a workaround class-version that does the job. This is primarily + for the STLport std lib. +

-

- BOOST_HAS_TR1_ARRAY -

+

+ BOOST_HAS_TR1_ARRAY +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming version of <array>. -

+

+ The library has a TR1 conforming version of <array>. +

-

- BOOST_HAS_TR1_COMPLEX_OVERLOADS -

+

+ BOOST_HAS_TR1_COMPLEX_OVERLOADS +

-

- Standard library -

+

+ Standard library +

-

- The library has a version of <complex> - that supports passing scalars to the complex number algorithms. -

+

+ The library has a version of <complex> + that supports passing scalars to the complex number algorithms. +

-

- BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG -

+

+ BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG +

-

- Standard library -

+

+ Standard library +

-

- The library has a version of <complex> - that includes the new inverse trig functions from TR1. -

+

+ The library has a version of <complex> + that includes the new inverse trig functions from TR1. +

-

- BOOST_HAS_TR1_REFERENCE_WRAPPER -

+

+ BOOST_HAS_TR1_REFERENCE_WRAPPER +

-

- Standard library -

+

+ Standard library +

-

- The library has TR1 conforming reference wrappers in <functional>. -

+

+ The library has TR1 conforming reference wrappers in <functional>. +

-

- BOOST_HAS_TR1_RESULT_OF -

+

+ BOOST_HAS_TR1_RESULT_OF +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming result_of template in <functional>. -

+

+ The library has a TR1 conforming result_of template in <functional>. +

-

- BOOST_HAS_TR1_MEM_FN -

+

+ BOOST_HAS_TR1_MEM_FN +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming mem_fn function template in <functional>. -

+

+ The library has a TR1 conforming mem_fn function template in <functional>. +

-

- BOOST_HAS_TR1_BIND -

+

+ BOOST_HAS_TR1_BIND +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming bind function template in <functional>. -

+

+ The library has a TR1 conforming bind function template in <functional>. +

-

- BOOST_HAS_TR1_FUNCTION -

+

+ BOOST_HAS_TR1_FUNCTION +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming function class template in <functional>. -

+

+ The library has a TR1 conforming function class template in <functional>. +

-

- BOOST_HAS_TR1_HASH -

+

+ BOOST_HAS_TR1_HASH +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming hash function template in <functional>. -

+

+ The library has a TR1 conforming hash function template in <functional>. +

-

- BOOST_HAS_TR1_SHARED_PTR -

+

+ BOOST_HAS_TR1_SHARED_PTR +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming shared_ptr - class template in <memory>. -

+

+ The library has a TR1 conforming shared_ptr + class template in <memory>. +

-

- BOOST_HAS_TR1_RANDOM -

+

+ BOOST_HAS_TR1_RANDOM +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming version of <random>. -

+

+ The library has a TR1 conforming version of <random>. +

-

- BOOST_HAS_TR1_REGEX -

+

+ BOOST_HAS_TR1_REGEX +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming version of <regex>. -

+

+ The library has a TR1 conforming version of <regex>. +

-

- BOOST_HAS_TR1_TUPLE -

+

+ BOOST_HAS_TR1_TUPLE +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming version of <tuple>. -

+

+ The library has a TR1 conforming version of <tuple>. +

-

- BOOST_HAS_TR1_TYPE_TRAITS -

+

+ BOOST_HAS_TR1_TYPE_TRAITS +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming version of <type_traits>. -

+

+ The library has a TR1 conforming version of <type_traits>. +

-

- BOOST_HAS_TR1_UTILITY -

+

+ BOOST_HAS_TR1_UTILITY +

-

- Standard library -

+

+ Standard library +

-

- The library has the TR1 additions to <utility> - (tuple interface to std::pair). -

+

+ The library has the TR1 additions to <utility> + (tuple interface to std::pair). +

-

- BOOST_HAS_TR1_UNORDERED_MAP -

+

+ BOOST_HAS_TR1_UNORDERED_MAP +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming version of <unordered_map>. -

+

+ The library has a TR1 conforming version of <unordered_map>. +

-

- BOOST_HAS_TR1_UNORDERED_SET -

+

+ BOOST_HAS_TR1_UNORDERED_SET +

-

- Standard library -

+

+ Standard library +

-

- The library has a TR1 conforming version of <unordered_set>. -

+

+ The library has a TR1 conforming version of <unordered_set>. +

-

- BOOST_HAS_TR1 -

+

+ BOOST_HAS_TR1 +

-

- Standard library -

+

+ Standard library +

-

- Implies all the other BOOST_HAS_TR1_* macros should be set. -

+

+ Implies all the other BOOST_HAS_TR1_* macros should be set. +

-

- BOOST_HAS_THREADS -

+

+ BOOST_HAS_THREADS +

-

- Platform, Compiler -

+

+ Platform, Compiler +

-

- Defined if the compiler, in its current translation mode, supports - multiple threads of execution. -

+

+ Defined if the compiler, in its current translation mode, supports + multiple threads of execution. +

-

- BOOST_HAS_TWO_ARG_USE_FACET -

+

+ BOOST_HAS_TWO_ARG_USE_FACET +

-

- Standard library -

+

+ Standard library +

-

- The standard library lacks a conforming std::use_facet, but has a - two argument version that does the job. This is primarily for the - Rogue Wave std lib. -

+

+ The standard library lacks a conforming std::use_facet, but has + a two argument version that does the job. This is primarily for + the Rogue Wave std lib. +

-

- BOOST_HAS_UNISTD_H -

+

+ BOOST_HAS_UNISTD_H +

-

- Platform -

+

+ Platform +

-

- The Platform provides <unistd.h>. -

+

+ The Platform provides <unistd.h>. +

-

- BOOST_HAS_WINTHREADS -

+

+ BOOST_HAS_WINTHREADS +

-

- Platform -

+

+ Platform +

-

- The platform supports MS Windows style threads. -

+

+ The platform supports MS Windows style threads. +

-

- BOOST_MSVC_STD_ITERATOR -

+

+ BOOST_MSVC_STD_ITERATOR +

-

- Standard library -

+

+ Standard library +

-

- Microsoft's broken version of std::iterator - is being used. This implies that std::iterator - takes no more than two template parameters. -

+

+ Microsoft's broken version of std::iterator + is being used. This implies that std::iterator + takes no more than two template parameters. +

-

- BOOST_MSVC6_MEMBER_TEMPLATES -

+

+ BOOST_MSVC6_MEMBER_TEMPLATES +

-

- Compiler -

+

+ Compiler +

-

- Microsoft Visual C++ 6.0 has enough member template idiosyncrasies - (being polite) that BOOST_NO_MEMBER_TEMPLATES - is defined for this compiler. BOOST_MSVC6_MEMBER_TEMPLATES - is defined to allow compiler specific workarounds. This macro gets - defined automatically if BOOST_NO_MEMBER_TEMPLATES - is not defined - in other words this is treated as a strict subset - of the features required by the standard. -

+

+ Microsoft Visual C++ 6.0 has enough member template idiosyncrasies + (being polite) that BOOST_NO_MEMBER_TEMPLATES + is defined for this compiler. BOOST_MSVC6_MEMBER_TEMPLATES + is defined to allow compiler specific workarounds. This macro gets + defined automatically if BOOST_NO_MEMBER_TEMPLATES + is not defined - in other words this is treated as a strict subset + of the features required by the standard. +

-

- BOOST_HAS_STDINT_H -

+

+ BOOST_HAS_STDINT_H +

-

- Platform -

+

+ Platform +

-

- There are no 1998 C++ Standard headers <stdint.h> - or <cstdint>, although the 1999 C Standard - does include <stdint.h>. If <stdint.h> - is present, <boost/stdint.h> can make good use of it, so a - flag is supplied (signalling presence; thus the default is not present, - conforming to the current C++ standard). -

+

+ There are no 1998 C++ Standard headers <stdint.h> + or <cstdint>, although the 1999 C Standard + does include <stdint.h>. + If <stdint.h> is present, <boost/stdint.h> + can make good use of it, so a flag is supplied (signalling presence; + thus the default is not present, conforming to the current C++ + standard). +

-
+

Macros that describe possible C++0x features @@ -2200,31 +2200,31 @@ -

- Macro -

+

+ Macro +

-

- Description -

+

+ Description +

-

- BOOST_HAS_CONCEPTS -

+

+ BOOST_HAS_CONCEPTS +

-

- The compiler supports concepts. -

+

+ The compiler supports concepts. +

-
+

Macros that describe C++0x features not supported @@ -2240,594 +2240,595 @@ -

- Macro -

+

+ Macro +

-

- Description -

+

+ Description +

-

- BOOST_NO_0X_HDR_ARRAY -

+

+ BOOST_NO_0X_HDR_ARRAY +

-

- The standard library does not provide header <array>. -

+

+ The standard library does not provide header <array>. +

-

- BOOST_NO_0X_HDR_CHRONO -

+

+ BOOST_NO_0X_HDR_CHRONO +

-

- The standard library does not provide header <chrono>. -

+

+ The standard library does not provide header <chrono>. +

-

- BOOST_NO_0X_HDR_CODECVT -

+

+ BOOST_NO_0X_HDR_CODECVT +

-

- The standard library does not provide header <codecvt>. -

+

+ The standard library does not provide header <codecvt>. +

-

- BOOST_NO_0X_HDR_CONCEPTS -

+

+ BOOST_NO_0X_HDR_CONCEPTS +

-

- The standard library does not provide header <concepts>. -

+

+ The standard library does not provide header <concepts>. +

-

- BOOST_NO_0X_HDR_CONDITION_VARIABLE -

+

+ BOOST_NO_0X_HDR_CONDITION_VARIABLE +

-

- The standard library does not provide header <condition_variable>. -

+

+ The standard library does not provide header <condition_variable>. +

-

- BOOST_NO_0X_HDR_CONTAINER_CONCEPTS -

+

+ BOOST_NO_0X_HDR_CONTAINER_CONCEPTS +

-

- The standard library does not provide header <container_concepts>. -

+

+ The standard library does not provide header <container_concepts>. +

-

- BOOST_NO_0X_HDR_FORWARD_LIST -

+

+ BOOST_NO_0X_HDR_FORWARD_LIST +

-

- The standard library does not provide header <forward_list>. -

+

+ The standard library does not provide header <forward_list>. +

-

- BOOST_NO_0X_HDR_FUTURE -

+

+ BOOST_NO_0X_HDR_FUTURE +

-

- The standard library does not provide header <future>. -

+

+ The standard library does not provide header <future>. +

-

- BOOST_NO_0X_HDR_INITIALIZER_LIST -

+

+ BOOST_NO_0X_HDR_INITIALIZER_LIST +

-

- The standard library does not provide header <initializer_list>. -

+

+ The standard library does not provide header <initializer_list>. +

-

- BOOST_NO_0X_HDR_ITERATOR_CONCEPTS -

+

+ BOOST_NO_0X_HDR_ITERATOR_CONCEPTS +

-

- The standard library does not provide header <iterator_concepts>. -

+

+ The standard library does not provide header <iterator_concepts>. +

-

- BOOST_NO_0X_HDR_MEMORY_CONCEPTS -

+

+ BOOST_NO_0X_HDR_MEMORY_CONCEPTS +

-

- The standard library does not provide header <memory_concepts>. -

+

+ The standard library does not provide header <memory_concepts>. +

-

- BOOST_NO_0X_HDR_MUTEX -

+

+ BOOST_NO_0X_HDR_MUTEX +

-

- The standard library does not provide header <mutex>. -

+

+ The standard library does not provide header <mutex>. +

-

- BOOST_NO_0X_HDR_RANDOM -

+

+ BOOST_NO_0X_HDR_RANDOM +

-

- The standard library does not provide header <random>. -

+

+ The standard library does not provide header <random>. +

-

- BOOST_NO_0X_HDR_RATIO -

+

+ BOOST_NO_0X_HDR_RATIO +

-

- The standard library does not provide header <ratio>. -

+

+ The standard library does not provide header <ratio>. +

-

- BOOST_NO_0X_HDR_REGEX -

+

+ BOOST_NO_0X_HDR_REGEX +

-

- The standard library does not provide header <regex>. -

+

+ The standard library does not provide header <regex>. +

-

- BOOST_NO_0X_HDR_SYSTEM_ERROR -

+

+ BOOST_NO_0X_HDR_SYSTEM_ERROR +

-

- The standard library does not provide header <system_error>. -

+

+ The standard library does not provide header <system_error>. +

-

- BOOST_NO_0X_HDR_THREAD -

+

+ BOOST_NO_0X_HDR_THREAD +

-

- The standard library does not provide header <thread>. -

+

+ The standard library does not provide header <thread>. +

-

- BOOST_NO_0X_HDR_TUPLE -

+

+ BOOST_NO_0X_HDR_TUPLE +

-

- The standard library does not provide header <tuple>. -

+

+ The standard library does not provide header <tuple>. +

-

- BOOST_NO_0X_HDR_TYPEINDEX -

+

+ BOOST_NO_0X_HDR_TYPEINDEX +

-

- The standard library does not provide header <typeindex>. -

+

+ The standard library does not provide header <typeindex>. +

-

- BOOST_NO_0X_HDR_TYPE_TRAITS -

+

+ BOOST_NO_0X_HDR_TYPE_TRAITS +

-

- The standard library does not provide header <type_traits>. -

+

+ The standard library does not provide header <type_traits>. +

-

- BOOST_NO_0X_HDR_UNORDERED_MAP -

+

+ BOOST_NO_0X_HDR_UNORDERED_MAP +

-

- The standard library does not provide header <unordered_map>. -

+

+ The standard library does not provide header <unordered_map>. +

-

- BOOST_NO_0X_HDR_UNORDERED_SET -

+

+ BOOST_NO_0X_HDR_UNORDERED_SET +

-

- The standard library does not provide header <unordered_set>. -

+

+ The standard library does not provide header <unordered_set>. +

-

- BOOST_NO_AUTO_DECLARATIONS -

+

+ BOOST_NO_AUTO_DECLARATIONS +

-

- The compiler does not support type deduction for variables declared - with the auto keyword - (auto var - = ...;). -

+

+ The compiler does not support type deduction for variables declared + with the auto keyword + (auto var + = ...;). +

-

- BOOST_NO_AUTO_MULTIDECLARATIONS -

+

+ BOOST_NO_AUTO_MULTIDECLARATIONS +

-

- The compiler does not support type deduction for multiple variables - declared with the auto - keyword (auto var - = ..., - *ptr - = ...;). -

+

+ The compiler does not support type deduction for multiple variables + declared with the auto + keyword (auto var + = ..., + *ptr + = ...;). +

-

- BOOST_NO_CHAR16_T -

+

+ BOOST_NO_CHAR16_T +

-

- The compiler does not support type char16_t. -

+

+ The compiler does not support type char16_t. +

-

- BOOST_NO_CHAR32_T -

+

+ BOOST_NO_CHAR32_T +

-

- The compiler does not support type char32_t. -

+

+ The compiler does not support type char32_t. +

-

- BOOST_NO_CONCEPTS -

+

+ BOOST_NO_CONCEPTS +

-

- The compiler does not support Concepts. -

+

+ The compiler does not support Concepts. +

-

- BOOST_NO_TEMPLATE_ALIASES -

+

+ BOOST_NO_TEMPLATE_ALIASES +

-

- The compiler does not support template aliases. -

+

+ The compiler does not support template aliases. +

-

- BOOST_NO_CONSTEXPR -

+

+ BOOST_NO_CONSTEXPR +

-

- The compiler does not support constexpr. -

+

+ The compiler does not support constexpr. +

-

- BOOST_NO_DECLTYPE -

+

+ BOOST_NO_DECLTYPE +

-

- The compiler does not support decltype. -

+

+ The compiler does not support decltype. +

-

- BOOST_NO_DEFAULTED_FUNCTIONS -

+

+ BOOST_NO_DEFAULTED_FUNCTIONS +

-

- The compiler does not support defaulted (= - default) functions. -

+

+ The compiler does not support defaulted (= + default) functions. +

-

- BOOST_NO_DELETED_FUNCTIONS -

+

+ BOOST_NO_DELETED_FUNCTIONS +

-

- The compiler does not support deleted (= - delete) functions. -

+

+ The compiler does not support deleted (= + delete) functions. +

-

- BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -

+

+ BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +

-

- The compiler does not support explicit conversion operators (explicit operator - T()). -

+

+ The compiler does not support explicit conversion operators (explicit operator + T()). +

-

- BOOST_NO_EXTERN_TEMPLATE -

+

+ BOOST_NO_EXTERN_TEMPLATE +

-

- The compiler does not support explicit instantiation forward declarations - for templates (extern template ...). -

+

+ The compiler does not support explicit instantiation forward declarations + for templates (extern template ...). +

-

- BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -

+

+ BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +

-

- The compiler does not support default template arguments for function - templates. -

+

+ The compiler does not support default template arguments for function + templates. +

-

- BOOST_NO_INITIALIZER_LISTS -

+

+ BOOST_NO_INITIALIZER_LISTS +

-

- The C++ compiler does not support C++0x initializer lists. -

+

+ The C++ compiler does not support C++0x initializer lists. +

-

- BOOST_NO_LAMBDAS -

+

+ BOOST_NO_LAMBDAS +

-

- The compiler does not support Lambdas. -

+

+ The compiler does not support Lambdas. +

-

- BOOST_NO_LONG_LONG -

+

+ BOOST_NO_LONG_LONG +

-

- The compiler does not support long - long. -

+

+ The compiler does not support long + long. +

-

- BOOST_NO_NULLPTR -

+

+ BOOST_NO_NULLPTR +

-

- The compiler does not support 'nullptr'. -

+

+ The compiler does not support 'nullptr'. +

-

- BOOST_NO_RAW_LITERALS -

+

+ BOOST_NO_RAW_LITERALS +

-

- The compiler does not support raw string literals. -

+

+ The compiler does not support raw string literals. +

-

- BOOST_NO_RVALUE_REFERENCES -

+

+ BOOST_NO_RVALUE_REFERENCES +

-

- The compiler does not support r-value references. -

+

+ The compiler does not support r-value references. +

-

- BOOST_NO_SCOPED_ENUMS -

+

+ BOOST_NO_SCOPED_ENUMS +

-

- The compiler does not support scoped enumerations (enum class). -

+

+ The compiler does not support scoped enumerations (enum class). +

-

- BOOST_NO_STATIC_ASSERT -

+

+ BOOST_NO_STATIC_ASSERT +

-

- The compiler does not support static_assert. -

+

+ The compiler does not support static_assert. +

-

- BOOST_NO_STD_UNORDERD -

+

+ BOOST_NO_STD_UNORDERD +

-

- The standard library does not support <unordered_map> and <unordered_set>. -

+

+ The standard library does not support <unordered_map> and + <unordered_set>. +

-

- BOOST_NO_TEMPLATE_ALIASES -

+

+ BOOST_NO_TEMPLATE_ALIASES +

-

- The compiler does not support template aliases. -

+

+ The compiler does not support template aliases. +

-

- BOOST_NO_UNICODE_LITERALS -

+

+ BOOST_NO_UNICODE_LITERALS +

-

- The compiler does not support Unicode (u8, - u, U) literals. -

+

+ The compiler does not support Unicode (u8, + u, U) literals. +

-

- BOOST_NO_VARIADIC_TEMPLATES -

+

+ BOOST_NO_VARIADIC_TEMPLATES +

-

- The compiler does not support variadic templates. -

+

+ The compiler does not support variadic templates. +

@@ -2835,7 +2836,7 @@

-
+

Boost Helper Macros @@ -2851,33 +2852,33 @@ -

- Macro -

+

+ Macro +

-

- Description -

+

+ Description +

-

- BOOST_WORKAROUND -

+

+ BOOST_WORKAROUND +

-

- This macro is used where a compiler specific workaround is required - that is not otherwise described by one of the other Boost.Config - macros. To use the macro you must first +

+ This macro is used where a compiler specific workaround is required + that is not otherwise described by one of the other Boost.Config + macros. To use the macro you must first

#include <boost/detail/workaround.hpp>
 

- usage is then: + usage is then:

#if BOOST_WORKAROUND(MACRONAME, CONDITION)
    // workaround code goes here...
@@ -2886,157 +2887,157 @@
 #endif
 

- where MACRONAME is - a macro that usually describes the version number to be tested against, - and CONDITION is - a comparison operator followed by a value. For example BOOST_WORKAROUND(BOOST_INTEL, - <= 1010) would evaluate to 1 for Intel C++ 10.1 and earlier. -

-

- The macro can also be used with BOOST_TESTED_AT - if all current compiler versions exhibit the issue, but the issue - is expected to be fixed at some later point. -

-

- For example BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) would normally evaluate to 1 for all values of __BORLANDC__ - unless the macro BOOST_DETECT_OUTDATED_WORKAROUNDS - is defined, in which case evaluates to (__BORLANDC__ <= - 0x590). -

-

- Note: the ultimate source of documentation - for this macro is in boost/detail/workaround.hpp. -

+ where MACRONAME + is a macro that usually describes the version number to be tested + against, and CONDITION + is a comparison operator followed by a value. For example BOOST_WORKAROUND(BOOST_INTEL, + <= 1010) would evaluate to 1 for Intel C++ 10.1 and earlier. +

+

+ The macro can also be used with BOOST_TESTED_AT + if all current compiler versions exhibit the issue, but the issue + is expected to be fixed at some later point. +

+

+ For example BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) would normally evaluate to 1 for all values of __BORLANDC__ unless + the macro BOOST_DETECT_OUTDATED_WORKAROUNDS + is defined, in which case evaluates to (__BORLANDC__ <= + 0x590). +

+

+ Note: the ultimate source of documentation + for this macro is in boost/detail/workaround.hpp. +

-

- BOOST_DEDUCED_TYPENAME -

+

+ BOOST_DEDUCED_TYPENAME +

-

- Some compilers don't support the use of typename for dependent types - in deduced contexts. This macro expands to nothing on those compilers, - and typename elsewhere. For example, replace: template - <class - T> - void f(T, typename - T::type); - with: template <class T> void - f(T, BOOST_DEDUCED_TYPENAME T::type); -

+

+ Some compilers don't support the use of typename for dependent + types in deduced contexts. This macro expands to nothing on those + compilers, and typename elsewhere. For example, replace: template <class T> void + f(T, + typename T::type); with: template + <class + T> + void f(T, BOOST_DEDUCED_TYPENAME + T::type); +

-

- BOOST_HASH_MAP_HEADER -

+

+ BOOST_HASH_MAP_HEADER +

-

- The header to include to get the SGI hash_map - class. This macro is only available if BOOST_HAS_HASH - is defined. -

+

+ The header to include to get the SGI hash_map + class. This macro is only available if BOOST_HAS_HASH + is defined. +

-

- BOOST_HASH_SET_HEADER -

+

+ BOOST_HASH_SET_HEADER +

-

- The header to include to get the SGI hash_set - class. This macro is only available if BOOST_HAS_HASH - is defined. -

+

+ The header to include to get the SGI hash_set + class. This macro is only available if BOOST_HAS_HASH + is defined. +

-

- BOOST_SLIST_HEADER -

+

+ BOOST_SLIST_HEADER +

-

- The header to include to get the SGI slist - class. This macro is only available if BOOST_HAS_SLIST - is defined. -

+

+ The header to include to get the SGI slist + class. This macro is only available if BOOST_HAS_SLIST + is defined. +

-

- BOOST_STD_EXTENSION_NAMESPACE -

+

+ BOOST_STD_EXTENSION_NAMESPACE +

-

- The namespace used for std library extensions (hashtable classes - etc). -

+

+ The namespace used for std library extensions (hashtable classes + etc). +

-

- BOOST_STATIC_CONSTANT(Type, assignment) -

+

+ BOOST_STATIC_CONSTANT(Type, assignment) +

-

- On compilers which don't allow in-class initialization of static - integral constant members, we must use enums as a workaround if we - want the constants to be available at compile-time. This macro gives - us a convenient way to declare such constants. For example instead - of: +

+ On compilers which don't allow in-class initialization of static + integral constant members, we must use enums as a workaround if + we want the constants to be available at compile-time. This macro + gives us a convenient way to declare such constants. For example + instead of:

struct foo{
    static const int value = 2;
 };
 

- use: + use:

struct foo{
    BOOST_STATIC_CONSTANT(int, value = 2);
 };
 

-

+

-

- BOOST_UNREACHABLE_RETURN(result) -

+

+ BOOST_UNREACHABLE_RETURN(result) +

-

- Normally evaluates to nothing, but evaluates to return x; if the - compiler requires a return, even when it can never be reached. -

+

+ Normally evaluates to nothing, but evaluates to return x; if the + compiler requires a return, even when it can never be reached. +

-

- BOOST_EXPLICIT_TEMPLATE_TYPE(t) BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v) BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t,v) -

+

+ BOOST_EXPLICIT_TEMPLATE_TYPE(t) BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v) BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t,v) +

-

- Some compilers silently "fold" different function template - instantiations if some of the template parameters don't appear in - the function parameter list. For instance: +

+ Some compilers silently "fold" different function template + instantiations if some of the template parameters don't appear + in the function parameter list. For instance:

#include <iostream>
 #include <ostream>
@@ -3057,10 +3058,10 @@
 }
 

- incorrectly outputs 2 2 double double on VC++ - 6. These macros, to be used in the function parameter list, fix the - problem without effects on the calling syntax. For instance, in the - case above write: + incorrectly outputs 2 2 double double on VC++ + 6. These macros, to be used in the function parameter list, fix + the problem without effects on the calling syntax. For instance, + in the case above write:

template <int n>
 void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
@@ -3069,105 +3070,105 @@
 void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
 

- Beware that they can declare (for affected compilers) a dummy defaulted - parameter, so they -

-

- a) should be always invoked at the end of the parameter list -

-

- b) can't be used if your function - template is multiply declared. -

-

- Furthermore, in order to add any needed comma separator, an APPEND_* - version must be used when the macro invocation appears after a normal - parameter declaration or after the invocation of another macro of - this same group. -

+ Beware that they can declare (for affected compilers) a dummy defaulted + parameter, so they +

+

+ a) should be always invoked at the end of the parameter list +

+

+ b) can't be used if your function + template is multiply declared. +

+

+ Furthermore, in order to add any needed comma separator, an APPEND_* + version must be used when the macro invocation appears after a + normal parameter declaration or after the invocation of another + macro of this same group. +

-

- BOOST_USE_FACET(Type, - loc) -

+

+ BOOST_USE_FACET(Type, loc) +

-

- When the standard library does not have a comforming std::use_facet there are various workarounds - available, but they differ from library to library. This macro provides - a consistent way to access a locale's facets. For example, replace: - std::use_facet<Type>(loc); - with: BOOST_USE_FACET(Type, loc); Note do not add a std:: - prefix to the front of BOOST_USE_FACET. -

+

+ When the standard library does not have a comforming std::use_facet there are various workarounds + available, but they differ from library to library. This macro + provides a consistent way to access a locale's facets. For example, + replace: std::use_facet<Type>(loc); + with: BOOST_USE_FACET(Type, loc); Note do not add a std:: + prefix to the front of BOOST_USE_FACET. +

-

- BOOST_HAS_FACET(Type, - loc) -

+

+ BOOST_HAS_FACET(Type, loc) +

-

- When the standard library does not have a comforming std::has_facet there are various workarounds - available, but they differ from library to library. This macro provides - a consistent way to check a locale's facets. For example, replace: - std::has_facet<Type>(loc); - with: BOOST_HAS_FACET(Type, loc); Note do not add a std:: - prefix to the front of BOOST_HAS_FACET. -

+

+ When the standard library does not have a comforming std::has_facet there are various workarounds + available, but they differ from library to library. This macro + provides a consistent way to check a locale's facets. For example, + replace: std::has_facet<Type>(loc); + with: BOOST_HAS_FACET(Type, loc); Note do not add a std:: + prefix to the front of BOOST_HAS_FACET. +

-

- BOOST_NESTED_TEMPLATE -

+

+ BOOST_NESTED_TEMPLATE +

-

- Member templates are supported by some compilers even though they - can't use the A::template member<U> syntax, as a workaround replace: - typedef typename - A::template rebind<U> binder; with: typedef - typename A::BOOST_NESTED_TEMPLATE - rebind<U> - binder; -

+

+ Member templates are supported by some compilers even though they + can't use the A::template + member<U> + syntax, as a workaround replace: typedef + typename A::template + rebind<U> + binder; + with: typedef typename + A::BOOST_NESTED_TEMPLATE rebind<U> binder; +

-

- BOOST_STRINGIZE(X) -

+

+ BOOST_STRINGIZE(X) +

-

- Converts the parameter X - to a string after macro replacement on X - has been performed. -

+

+ Converts the parameter X + to a string after macro replacement on X + has been performed. +

-

- BOOST_JOIN(X,Y) -

+

+ BOOST_JOIN(X,Y) +

-

- This piece of macro magic joins the two arguments together, even - when one of the arguments is itself a macro (see 16.3.1 in C++ standard). - This is normally used to create a mangled name in combination with - a predefined macro such a __LINE__. -

+

+ This piece of macro magic joins the two arguments together, even + when one of the arguments is itself a macro (see 16.3.1 in C++ + standard). This is normally used to create a mangled name in combination + with a predefined macro such a __LINE__. +

@@ -3175,7 +3176,7 @@

-
+

Boost Informational Macros @@ -3192,267 +3193,268 @@ -

- Macro -

+

+ Macro +

-

- Header -

+

+ Header +

-

- Description -

+

+ Description +

-

- BOOST_VERSION -

+

+ BOOST_VERSION +

-

- <boost/version.hpp> -

+

+ <boost/version.hpp> +

-

- Describes the boost version number in XYYYZZ format such that: (BOOST_VERSION - % 100) is the sub-minor version, ((BOOST_VERSION - / 100) % 1000) - is the minor version, and (BOOST_VERSION / - 100000) - is the major version. -

+

+ Describes the boost version number in XYYYZZ format such that: + (BOOST_VERSION + % 100) is the sub-minor version, ((BOOST_VERSION + / 100) % 1000) + is the minor version, and (BOOST_VERSION / + 100000) + is the major version. +

-

- BOOST_NO_INT64_T -

+

+ BOOST_NO_INT64_T +

-

- <boost/cstdint.hpp> <boost/stdint.h> -

+

+ <boost/cstdint.hpp> <boost/stdint.h> +

-

- Defined if there are no 64-bit integral types: int64_t, - uint64_t etc. -

+

+ Defined if there are no 64-bit integral types: int64_t, + uint64_t etc. +

-

- BOOST_NO_INTEGRAL_INT64_T -

+

+ BOOST_NO_INTEGRAL_INT64_T +

-

- <boost/cstdint.hpp> <boost/stdint.h> -

+

+ <boost/cstdint.hpp> <boost/stdint.h> +

-

- Defined if int64_t - as defined by <boost/cstdint.hpp> is not usable in integral constant - expressions. -

+

+ Defined if int64_t + as defined by <boost/cstdint.hpp> + is not usable in integral constant expressions. +

-

- BOOST_MSVC -

+

+ BOOST_MSVC +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined if the compiler is really Microsoft Visual C++, as opposed - to one of the many other compilers that also define _MSC_VER. Has the same value as - _MSC_VER. -

+

+ Defined if the compiler is really Microsoft Visual C++, as opposed + to one of the many other compilers that also define _MSC_VER. Has the same value + as _MSC_VER. +

-

- BOOST_MSVC_FULL_VER -

+

+ BOOST_MSVC_FULL_VER +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined to a normalised 9 digit version of _MSC_FULL_VER (which sometimes - only has 8 digits), the macro has the form VVMMPPPPP where VV is - the major version number, MM is the minor version number, and PPPPP - is the compiler build number. -

+

+ Defined to a normalised 9 digit version of _MSC_FULL_VER (which + sometimes only has 8 digits), the macro has the form VVMMPPPPP + where VV is the major version number, MM is the minor version number, + and PPPPP is the compiler build number. +

-

- BOOST_INTEL -

+

+ BOOST_INTEL +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined if the compiler is an Intel compiler, takes the same value - as the compiler version macro. -

+

+ Defined if the compiler is an Intel compiler, takes the same value + as the compiler version macro. +

-

- BOOST_CLANG -

+

+ BOOST_CLANG +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined to 1 if the compiler is the Clang compiler. -

+

+ Defined to 1 if the compiler is the Clang compiler. +

-

- BOOST_WINDOWS -

+

+ BOOST_WINDOWS +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined if the Windows platfrom API is available. -

+

+ Defined if the Windows platfrom API is available. +

-

- BOOST_DINKUMWARE_STDLIB -

+

+ BOOST_DINKUMWARE_STDLIB +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined if the dinkumware standard library is in use, takes the same - value as the Dinkumware library version macro _CPPLIB_VER - if defined, otherwise 1. -

+

+ Defined if the dinkumware standard library is in use, takes the + same value as the Dinkumware library version macro _CPPLIB_VER if defined, otherwise + 1. +

-

- BOOST_NO_WREGEX -

+

+ BOOST_NO_WREGEX +

-

- <boost/regex.hpp> -

+

+ <boost/regex.hpp> +

-

- Defined if the regex library does not support wide character regular - expressions. -

+

+ Defined if the regex library does not support wide character regular + expressions. +

-

- BOOST_COMPILER -

+

+ BOOST_COMPILER +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined as a string describing the name and version number of the - compiler in use. Mainly for debugging the configuration. -

+

+ Defined as a string describing the name and version number of the + compiler in use. Mainly for debugging the configuration. +

-

- BOOST_STDLIB -

+

+ BOOST_STDLIB +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined as a string describing the name and version number of the - standard library in use. Mainly for debugging the configuration. -

+

+ Defined as a string describing the name and version number of the + standard library in use. Mainly for debugging the configuration. +

-

- BOOST_PLATFORM -

+

+ BOOST_PLATFORM +

-

- <boost/config.hpp> -

+

+ <boost/config.hpp> +

-

- Defined as a string describing the name of the platform. Mainly for - debugging the configuration. -

+

+ Defined as a string describing the name of the platform. Mainly + for debugging the configuration. +

-
+

Macros for libraries with separate source code @@ -3469,23 +3471,23 @@ The following macros and helper headers are of use to authors whose libraries include separate source code, and are intended to address several issues:

-
    -
  • - Controlling shared library symbol visibility -
  • -
  • - Fixing the ABI of the compiled library -
  • -
  • - Selecting which compiled library to link against based upon the compilers - settings -
  • +
      +
    • + Controlling shared library symbol visibility +
    • +
    • + Fixing the ABI of the compiled library +
    • +
    • + Selecting which compiled library to link against based upon the compilers + settings +

    See Guidelines for Authors of Boost Libraries Containing Separate Source

    -
    +

    Macros controlling shared library symbol visibility @@ -3515,85 +3517,86 @@ -

    - Macro -

    +

    + Macro +

    -

    - Description -

    +

    + Description +

    -

    - BOOST_SYMBOL_EXPORT -

    +

    + BOOST_SYMBOL_EXPORT +

    -

    - Defines the syntax of a C++ language extension that indicates a - symbol is to be exported from a shared library. If the compiler - has no such extension, the macro is defined with no replacement - text. -

    +

    + Defines the syntax of a C++ language extension that indicates + a symbol is to be exported from a shared library. If the compiler + has no such extension, the macro is defined with no replacement + text. +

    -

    - BOOST_SYMBOL_IMPORT -

    +

    + BOOST_SYMBOL_IMPORT +

    -

    - Defines the syntax of a C++ language extension that indicates a - symbol is to be imported from a shared library. If the compiler - has no such extension, the macro is defined with no replacement - text. -

    +

    + Defines the syntax of a C++ language extension that indicates + a symbol is to be imported from a shared library. If the compiler + has no such extension, the macro is defined with no replacement + text. +

    -

    - BOOST_SYMBOL_VISIBLE -

    +

    + BOOST_SYMBOL_VISIBLE +

    -

    - Defines the syntax of a C++ language extension that indicates a - symbol is to be globally visible. If the compiler has no such extension, - the macro is defined with no replacement text. Needed for classes - that are not otherwise exported, but are used by RTTI. Examples - include class for objects that will be thrown as exceptions or - used in dynamic_casts, across shared library boundaries. For example, - a header-only exception class might look like this: +

    + Defines the syntax of a C++ language extension that indicates + a symbol is to be globally visible. If the compiler has no such + extension, the macro is defined with no replacement text. Needed + for classes that are not otherwise exported, but are used by + RTTI. Examples include class for objects that will be thrown + as exceptions or used in dynamic_casts, across shared library + boundaries. For example, a header-only exception class might + look like this:

    class BOOST_SYMBOL_VISIBLE my_exception : public std::runtime_error { ... };
     

    - Without BOOST_SYMBOL_VISIBLE, it would be impossible to catch my_exception - thrown from a shared library compiled by GCC with the -fvisibility=hidden - option. -

    + Without BOOST_SYMBOL_VISIBLE, it would be impossible to catch + my_exception thrown from a shared library compiled by GCC with + the -fvisibility=hidden option. +

    -

    - BOOST_HAS_DECLSPEC -

    +

    + BOOST_HAS_DECLSPEC +

    -

    - The compiler has C++ extensions __declspec(dllexport) and __declspec(dllimport) to control export/import of symbols - from shared libraries. Deprecated. This macro is no longer - necessary since BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT are - now supplied. It is provided to support legacy code. -

    +

    + The compiler has C++ extensions __declspec(dllexport) and __declspec(dllimport) to control export/import of + symbols from shared libraries. Deprecated. This macro + is no longer necessary since BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT + are now supplied. It is provided to support legacy code. +

    @@ -3639,7 +3642,7 @@ ...

    -
    +

    ABI Fixing @@ -3697,7 +3700,7 @@ to point to their own prefix/suffix headers if they so wish.

    -
    +

    Automatic library selection @@ -3727,18 +3730,18 @@
    BOOST_LIB_NAME

    - Required: An identifier containing the basename of the library, for - example 'boost_regex'. -

    + Required: An identifier containing the basename of the library, for + example 'boost_regex'. +

    BOOST_DYN_LINK

    - Optional: when set link to dll rather than static library. -

    + Optional: when set link to dll rather than static library. +

    BOOST_LIB_DIAGNOSTIC

    - Optional: when set the header will print out the name of the library - selected (useful for debugging). -

    + Optional: when set the header will print out the name of the library + selected (useful for debugging). +

    @@ -3790,7 +3793,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_config/guidelines_for_boost_authors.html b/doc/html/boost_config/guidelines_for_boost_authors.html index d3acebf8..577bd808 100644 --- a/doc/html/boost_config/guidelines_for_boost_authors.html +++ b/doc/html/boost_config/guidelines_for_boost_authors.html @@ -2,8 +2,8 @@ Guidelines for Boost Authors - - + + @@ -20,9 +20,9 @@
    -PrevUpHomeNext +PrevUpHomeNext
    -
    +

    Guidelines for Boost Authors @@ -61,49 +61,49 @@

    Note that:

    -
      -
    • - Boost library implementers are not required to "#include - <boost/config.hpp>", - and are not required in any way to support compilers that do not comply with - the C++ Standard (ISO/IEC 14882). -
    • -
    • - If a library implementer wishes to support some non-conforming compiler, - or to support some platform specific feature, "#include - <boost/config.hpp>" - is the preferred way to obtain configuration information not available from - the standard headers such as <climits>, - etc. -
    • -
    • - If configuration information can be deduced from standard headers such as - <climits>, use those standard headers rather than - <boost/config.hpp>. -
    • -
    • - Boost files that use macros defined in <boost/config.hpp> - should have sensible, standard conforming, default behavior if the macro - is not defined. This means that the starting point for porting <boost/config.hpp> - to a new platform is simply to define nothing at all specific to that platform. - In the rare case where there is no sensible default behavior, an #error message - should describe the problem. -
    • -
    • - If a Boost library implementer wants something added to config.hpp, post - a request on the Boost mailing list. There is no guarantee such a request - will be honored; the intent is to limit the complexity of config.hpp. -
    • -
    • - The intent is to support only compilers which appear on their way to becoming - C++ Standard compliant, and only recent releases of those compilers at that. -
    • -
    • - The intent is not to disable mainstream features now well-supported by the - majority of compilers, such as namespaces, exceptions, RTTI, or templates. -
    • +
        +
      • + Boost library implementers are not required to "#include + <boost/config.hpp>", and are not required in any + way to support compilers that do not comply with the C++ Standard (ISO/IEC + 14882). +
      • +
      • + If a library implementer wishes to support some non-conforming compiler, + or to support some platform specific feature, "#include + <boost/config.hpp>" is the preferred way to obtain + configuration information not available from the standard headers such + as <climits>, etc. +
      • +
      • + If configuration information can be deduced from standard headers such + as <climits>, use those standard headers rather + than <boost/config.hpp>. +
      • +
      • + Boost files that use macros defined in <boost/config.hpp> + should have sensible, standard conforming, default behavior if the macro + is not defined. This means that the starting point for porting <boost/config.hpp> to a new platform is simply to define + nothing at all specific to that platform. In the rare case where there + is no sensible default behavior, an #error message should describe the + problem. +
      • +
      • + If a Boost library implementer wants something added to config.hpp, + post a request on the Boost mailing list. There is no guarantee such a + request will be honored; the intent is to limit the complexity of config.hpp. +
      • +
      • + The intent is to support only compilers which appear on their way to becoming + C++ Standard compliant, and only recent releases of those compilers at + that. +
      • +
      • + The intent is not to disable mainstream features now well-supported by + the majority of compilers, such as namespaces, exceptions, RTTI, or templates. +
      -
      +

      Disabling Compiler Warnings @@ -116,21 +116,21 @@

      Note that:

      -
        -
      • - This header should never be included by - another Boost header, it should only ever be used - by a library source file or a test case. -
      • -
      • - The header should be included before you - include any other header. -
      • -
      • - This header only disables warnings that are hard or impossible to otherwise - deal with, and which are typically emitted by one compiler only, or in - one compilers own standard library headers. -
      • +
          +
        • + This header should never be included + by another Boost header, it should only ever be + used by a library source file or a test case. +
        • +
        • + The header should be included before + you include any other header. +
        • +
        • + This header only disables warnings that are hard or impossible to otherwise + deal with, and which are typically emitted by one compiler only, or in + one compilers own standard library headers. +

        Currently it disables the following warnings: @@ -142,47 +142,47 @@ -

        - Compiler -

        +

        + Compiler +

        -

        - Warning -

        +

        + Warning +

        -

        - Visual C++ 8 and later -

        +

        + Visual C++ 8 and later +

        -

        - C4996: - Error 'function': was declared deprecated -

        +

        + C4996: + Error 'function': was declared deprecated +

        -

        - Intel C++ -

        +

        + Intel C++ +

        -

        - Warning 1786: relates to the use of "deprecated" standard - library functions rather like C4996 in Visual C++. -

        +

        + Warning 1786: relates to the use of "deprecated" standard + library functions rather like C4996 in Visual C++. +

      -
      +

      Adding New Defect Macros @@ -233,57 +233,59 @@ Once the test code is in place in libs/config/test, updating the configuration test system proceeds as:

      -
        -
      • - cd into libs/config/tools and run bjam. - This generates the .cpp - file test cases from the .ipp file, updates the libs/config/test/all/Jamfile.v2, - config_test.cpp and config_info.cpp.

        -
      • -
      • - cd into libs/config/test/all and run bjam - MACRONAME compiler-list, - where MACRONAME is the name of the new macro, and - compiler-list is a space separated - list of compilers to test with.

        The xxx_pass_test and the - xxx_fail_test should both report **passed**.

        If MACRONAME is not defined when it should - be defined, xxx_pass_test will not report **passed**. - If MACRONAME is defined when it should not be defined, - xxx_fail_test will not report **passed**.

        -
      • -
      • - cd into libs/config/test and run bjam - config_info config_test - compiler-list. - config_info should build - and run cleanly for all the compilers in compiler-list - while config_test should - fail for those that have the defect, and pass for those that do not. -
      • +
          +
        • + cd into libs/config/tools and run bjam. + This generates the .cpp + file test cases from the .ipp file, updates the libs/config/test/all/Jamfile.v2, + config_test.cpp and config_info.cpp.
          +
          +
        • +
        • + cd into libs/config/test/all and run bjam + MACRONAME compiler-list, + where MACRONAME is the name of the new macro, and + compiler-list is a space separated + list of compilers to test with.

          The xxx_pass_test and the + xxx_fail_test should both report **passed**.

          If MACRONAME + is not defined when it should be defined, xxx_pass_test will not report + **passed**. If MACRONAME + is defined when it should not be defined, xxx_fail_test will not report + **passed**.

          +
        • +
        • + cd into libs/config/test and run bjam + config_info config_test + compiler-list. + config_info should build + and run cleanly for all the compilers in compiler-list + while config_test should + fail for those that have the defect, and pass for those that do not. +

        Then you should:

        -
          -
        • - Define the defect macro in those config headers that require it. -
        • -
        • - Document the macro in this documentation (please do not forget this step!!) -
        • -
        • - Commit everything. -
        • -
        • - Keep an eye on the regression tests for new failures in Boost.Config caused - by the addition. -
        • -
        • - Start using the macro. -
        • +
            +
          • + Define the defect macro in those config headers that require it. +
          • +
          • + Document the macro in this documentation (please do not forget this step!!) +
          • +
          • + Commit everything. +
          • +
          • + Keep an eye on the regression tests for new failures in Boost.Config + caused by the addition. +
          • +
          • + Start using the macro. +
        -
        +

        Adding New Feature Test Macros @@ -307,7 +309,7 @@ <unistd.h>).

        -
        +

        Modifying the Boost Configuration Headers @@ -368,7 +370,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost_config/rationale.html b/doc/html/boost_config/rationale.html index 59a53ec9..4be5310f 100644 --- a/doc/html/boost_config/rationale.html +++ b/doc/html/boost_config/rationale.html @@ -2,8 +2,8 @@ Rationale - - + + @@ -20,9 +20,9 @@
        -PrevUpHomeNext +PrevUpHomeNext
        -
        +
        @@ -39,7 +39,7 @@ principles from the following article.

        -
        +
        @@ -56,16 +56,10 @@ have nothing to do with each other. Essentially, the traditional solution employed by configuration headers does not conform to the Open-Closed Principle:

        -
        -

        -

        -

        - "A module should be open for extension but - closed for modification." -

        -

        -

        -
        +

        + "A module should be open for extension but closed + for modification." +

        Extending a traditional configuration header implies modifying existing code.

        @@ -78,15 +72,9 @@ of the entire library, and more stable elements of Boost would depend on it. This violates the Stable Dependencies Principle:

        -
        -

        -

        -

        - "Depend in the direction of stability." -

        -

        -

        -
        +

        + "Depend in the direction of stability." +

        After even a minor change to a traditional configuration header on one minor platform, almost everything on every platform should be tested if we follow @@ -102,7 +90,7 @@ code must be provided.

        -
        +
        @@ -129,7 +117,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/index.html b/doc/html/index.html index a776e9bf..5a390070 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -2,8 +2,8 @@ Boost.Config - - + + @@ -17,8 +17,8 @@ More
        -
        Next
        -
        +
        Next
        +

        @@ -28,7 +28,7 @@

        -

        +

        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)

        @@ -92,7 +92,7 @@
        Acknowledgements
        -
        +
        -
        +

        Using the default boost configuration @@ -135,7 +135,7 @@ and submitting a support request.

        -
        +

        The <boost/config.hpp> header @@ -168,14 +168,14 @@

        -
        +
        - + @@ -295,30 +289,30 @@ (located under <boost-root>/boost/config/). There are two ways you can use this header:

        -
          -
        • -Option 1: copy the header into <boost-root>/boost/config/ so that it replaces the default user.hpp - provided by boost. This option allows only one configure-generated setup; - boost developers should avoid this option, as it incurs the danger of accidentally - committing a configure-modified <boost/config/user.hpp> - to the cvs repository (something you will not be thanked for!). -
        • -
        • -Option 2: give the header a more memorable - name, and place it somewhere convenient; then, define the macro BOOST_USER_CONFIG to point to it. For - example create a new sub-directory <boost-root>/boost/config/user/, and copy the header there; for example - as multithread-gcc-config.hpp. Then, when compiling add the command - line option: -DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>", - and boost will use the new configuration header. This option allows you - to generate more than one configuration header, and to keep them separate - from the boost source - so that updates to the source do not interfere - with your configuration. -
        • +
            +
          • + Option 1: copy the header into <boost-root>/boost/config/ so that it replaces the default user.hpp + provided by boost. This option allows only one configure-generated setup; + boost developers should avoid this option, as it incurs the danger of + accidentally committing a configure-modified <boost/config/user.hpp> + to the cvs repository (something you will not be thanked for!). +
          • +
          • + Option 2: give the header a more memorable + name, and place it somewhere convenient; then, define the macro BOOST_USER_CONFIG to point to it. For + example create a new sub-directory <boost-root>/boost/config/ user/, and copy the header there; for example + as multithread-gcc-config.hpp. Then, when compiling add the command + line option: -DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>", + and boost will use the new configuration header. This option allows you + to generate more than one configuration header, and to keep them separate + from the boost source - so that updates to the source do not interfere + with your configuration. +

        -
        +

        User settable options @@ -337,352 +331,354 @@

        [Important][Important] Important

        @@ -190,15 +190,9 @@ you will need to cd into <boost-root>/libs/config/ and type:

        -
        -

        -

        -

        - sh ./configure -

        -

        -

        -
        +

        + sh ./configure +

        you will see a list of the items being checked as the script works its way through the regression tests. Note that the configure script only really @@ -213,63 +207,63 @@

        -

        - Variable -

        +

        + Variable +

        -

        - Description -

        +

        + Description +

        -

        - CXX -

        +

        + CXX +

        -

        - The name of the compiler, for example c++. -

        +

        + The name of the compiler, for example c++. +

        -

        - CXXFLAGS -

        +

        + CXXFLAGS +

        -

        - The compiler flags to use, for example -O2. -

        +

        + The compiler flags to use, for example -O2. +

        -

        - LDFLAGS -

        +

        + LDFLAGS +

        -

        - The linker flags to use, for example -L/mypath. -

        +

        + The linker flags to use, for example -L/mypath. +

        -

        - LIBS -

        +

        + LIBS +

        -

        - Any libraries to link in, for example -lpthread. -

        +

        + Any libraries to link in, for example -lpthread. +

        -

        - Macro -

        +

        + Macro +

        -

        - Description -

        +

        + Description +

        -

        - BOOST_USER_CONFIG -

        +

        + BOOST_USER_CONFIG +

        -

        - When defined, it should point to the name of the user configuration - file to include prior to any boost configuration files. When not - defined, defaults to <boost/config/user.hpp>. -

        +

        + When defined, it should point to the name of the user configuration + file to include prior to any boost configuration files. When not + defined, defaults to <boost/config/user.hpp>. +

        -

        - BOOST_COMPILER_CONFIG -

        +

        + BOOST_COMPILER_CONFIG +

        -

        - When defined, it should point to the name of the compiler configuration - file to use. Defining this cuts out the compiler selection logic, - and eliminates the dependency on the header containing that logic. - For example if you are using gcc, then you could define BOOST_COMPILER_CONFIG - to <boost/config/compiler/gcc.hpp>. -

        +

        + When defined, it should point to the name of the compiler configuration + file to use. Defining this cuts out the compiler selection logic, + and eliminates the dependency on the header containing that logic. + For example if you are using gcc, then you could define BOOST_COMPILER_CONFIG + to <boost/config/compiler/gcc.hpp>. +

        -

        - BOOST_STDLIB_CONFIG -

        +

        + BOOST_STDLIB_CONFIG +

        -

        - When defined, it should point to the name of the standard library - configuration file to use. Defining this cuts out the standard library - selection logic, and eliminates the dependency on the header containing - that logic. For example if you are using STLport, then you could - define BOOST_STDLIB_CONFIG - to <boost/config/stdlib/stlport.hpp>. -

        +

        + When defined, it should point to the name of the standard library + configuration file to use. Defining this cuts out the standard + library selection logic, and eliminates the dependency on the header + containing that logic. For example if you are using STLport, then + you could define BOOST_STDLIB_CONFIG + to <boost/config/stdlib/stlport.hpp>. +

        -

        - BOOST_PLATFORM_CONFIG -

        +

        + BOOST_PLATFORM_CONFIG +

        -

        - When defined, it should point to the name of the platform configuration - file to use. Defining this cuts out the platform selection logic, - and eliminates the dependency on the header containing that logic. - For example if you are compiling on linux, then you could define - BOOST_PLATFORM_CONFIG - to <boost/config/platform/linux.hpp>. -

        +

        + When defined, it should point to the name of the platform configuration + file to use. Defining this cuts out the platform selection logic, + and eliminates the dependency on the header containing that logic. + For example if you are compiling on linux, then you could define + BOOST_PLATFORM_CONFIG + to <boost/config/platform/linux.hpp>. +

        -

        - BOOST_NO_COMPILER_CONFIG -

        +

        + BOOST_NO_COMPILER_CONFIG +

        -

        - When defined, no compiler configuration file is selected or included, - define when the compiler is fully conformant with the standard, or - where the user header (see BOOST_USER_CONFIG), - has had any options necessary added to it, for example by an autoconf - generated configure script. -

        +

        + When defined, no compiler configuration file is selected or included, + define when the compiler is fully conformant with the standard, + or where the user header (see BOOST_USER_CONFIG), + has had any options necessary added to it, for example by an autoconf + generated configure script. +

        -

        - BOOST_NO_STDLIB_CONFIG -

        +

        + BOOST_NO_STDLIB_CONFIG +

        -

        - When defined, no standard library configuration file is selected - or included, define when the standard library is fully conformant - with the standard, or where the user header (see BOOST_USER_CONFIG), - has had any options necessary added to it, for example by an autoconf - generated configure script. -

        +

        + When defined, no standard library configuration file is selected + or included, define when the standard library is fully conformant + with the standard, or where the user header (see BOOST_USER_CONFIG), has had any + options necessary added to it, for example by an autoconf generated + configure script. +

        -

        - BOOST_NO_PLATFORM_CONFIG -

        +

        + BOOST_NO_PLATFORM_CONFIG +

        -

        - When defined, no platform configuration file is selected or included, - define when the platform is fully conformant with the standard (and - has no useful extra features), or where the user header (see BOOST_USER_CONFIG), has had any - options necessary added to it, for example by an autoconf generated - configure script. -

        +

        + When defined, no platform configuration file is selected or included, + define when the platform is fully conformant with the standard + (and has no useful extra features), or where the user header (see + BOOST_USER_CONFIG), + has had any options necessary added to it, for example by an autoconf + generated configure script. +

        -

        - BOOST_NO_CONFIG -

        +

        + BOOST_NO_CONFIG +

        -

        - Equivalent to defining all of BOOST_NO_COMPILER_CONFIG, - BOOST_NO_STDLIB_CONFIG - and BOOST_NO_PLATFORM_CONFIG. -

        +

        + Equivalent to defining all of BOOST_NO_COMPILER_CONFIG, + BOOST_NO_STDLIB_CONFIG + and BOOST_NO_PLATFORM_CONFIG. +

        -

        - BOOST_STRICT_CONFIG -

        +

        + BOOST_STRICT_CONFIG +

        -

        - The normal behavior for compiler versions that are newer than the - last known version, is to assume that they have all the same defects - as the last known version. By setting this define, then compiler - versions that are newer than the last known version are assumed to - be fully conforming with the standard. This is probably most useful - for boost developers or testers, and for those who want to use boost - to test beta compiler versions. -

        +

        + The normal behavior for compiler versions that are newer than the + last known version, is to assume that they have all the same defects + as the last known version. By setting this define, then compiler + versions that are newer than the last known version are assumed + to be fully conforming with the standard. This is probably most + useful for boost developers or testers, and for those who want + to use boost to test beta compiler versions. +

        -

        - BOOST_ASSERT_CONFIG -

        +

        + BOOST_ASSERT_CONFIG +

        -

        - When this flag is set, if the config finds anything unknown, then - it will stop with a #error rather than continue. Boost regression - testers should set this define, as should anyone who wants to quickly - check whether boost is supported on their platform. -

        +

        + When this flag is set, if the config finds anything unknown, then + it will stop with a #error rather than continue. Boost regression + testers should set this define, as should anyone who wants to quickly + check whether boost is supported on their platform. +

        -

        - BOOST_DISABLE_THREADS -

        +

        + BOOST_DISABLE_THREADS +

        -

        - When defined, disables threading support, even if the compiler in - its current translation mode supports multiple threads. -

        +

        + When defined, disables threading support, even if the compiler + in its current translation mode supports multiple threads. +

        -

        - BOOST_DISABLE_WIN32 -

        +

        + BOOST_DISABLE_WIN32 +

        -

        - When defined, disables the use of Win32 specific API's, even when - these are available. Also has the effect of setting BOOST_DISABLE_THREADS unless BOOST_HAS_PTHREADS is set. This - option may be set automatically by the config system when it detects - that the compiler is in "strict mode". -

        +

        + When defined, disables the use of Win32 specific API's, even when + these are available. Also has the effect of setting BOOST_DISABLE_THREADS unless + BOOST_HAS_PTHREADS + is set. This option may be set automatically by the config system + when it detects that the compiler is in "strict mode". +

        -

        - BOOST_DISABLE_ABI_HEADERS -

        +

        + BOOST_DISABLE_ABI_HEADERS +

        -

        - Stops boost headers from including any prefix/suffix headers that - normally control things like struct packing and alignment. -

        +

        + Stops boost headers from including any prefix/suffix headers that + normally control things like struct packing and alignment. +

        -

        - BOOST_ABI_PREFIX -

        +

        + BOOST_ABI_PREFIX +

        -

        - A prefix header to include in place of whatever boost.config would - normally select, any replacement should set up struct packing and - alignment options as required. -

        +

        + A prefix header to include in place of whatever boost.config would + normally select, any replacement should set up struct packing and + alignment options as required. +

        -

        - BOOST_ABI_SUFFIX -

        +

        + BOOST_ABI_SUFFIX +

        -

        - A suffix header to include in place of whatever boost.config would - normally select, any replacement should undo the effects of the prefix - header. -

        +

        + A suffix header to include in place of whatever boost.config would + normally select, any replacement should undo the effects of the + prefix header. +

        -

        - BOOST_ALL_DYN_LINK -

        +

        + BOOST_ALL_DYN_LINK +

        -

        - Forces all libraries that have separate source, to be linked as dll's - rather than static libraries on Microsoft Windows (this macro is - used to turn on __declspec(dllimport) modifiers, so that the compiler - knows which symbols to look for in a dll rather than in a static - library). Note that there may be some libraries that can only be - statically linked (Boost.Test for example) and others which may only - be dynamically linked (Boost.Threads for example), in these cases - this macro has no effect. -

        +

        + Forces all libraries that have separate source, to be linked as + dll's rather than static libraries on Microsoft Windows (this macro + is used to turn on __declspec(dllimport) modifiers, so that the compiler + knows which symbols to look for in a dll rather than in a static + library). Note that there may be some libraries that can only be + statically linked (Boost.Test for example) and others which may + only be dynamically linked (Boost.Threads for example), in these + cases this macro has no effect. +

        -

        - BOOST_WHATEVER_DYN_LINK -

        +

        + BOOST_WHATEVER_DYN_LINK +

        -

        - Forces library "whatever" to be linked as a dll rather - than a static library on Microsoft Windows: replace the WHATEVER - part of the macro name with the name of the library that you want - to dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK - or BOOST_REGEX_DYN_LINK - etc (this macro is used to turn on __declspec(dllimport) modifiers, so that the compiler - knows which symbols to look for in a dll rather than in a static - library). Note that there may be some libraries that can only be - statically linked (Boost.Test for example) and others which may only - be dynamically linked (Boost.Threads for example), in these cases - this macro is unsupported. -

        +

        + Forces library "whatever" to be linked as a dll rather + than a static library on Microsoft Windows: replace the WHATEVER + part of the macro name with the name of the library that you want + to dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK + or BOOST_REGEX_DYN_LINK + etc (this macro is used to turn on __declspec(dllimport) modifiers, so that the compiler + knows which symbols to look for in a dll rather than in a static + library). Note that there may be some libraries that can only be + statically linked (Boost.Test for example) and others which may + only be dynamically linked (Boost.Threads for example), in these + cases this macro is unsupported. +

        -

        - BOOST_ALL_NO_LIB -

        +

        + BOOST_ALL_NO_LIB +

        -

        - Tells the config system not to automatically select which libraries - to link against. Normally if a compiler supports #pragma lib, then - the correct library build variant will be automatically selected - and linked against, simply by the act of including one of that library's - headers. This macro turns that feature off. -

        +

        + Tells the config system not to automatically select which libraries + to link against. Normally if a compiler supports #pragma lib, then + the correct library build variant will be automatically selected + and linked against, simply by the act of including one of that + library's headers. This macro turns that feature off. +

        -

        - BOOST_WHATEVER_NO_LIB -

        +

        + BOOST_WHATEVER_NO_LIB +

        -

        - Tells the config system not to automatically select which library - to link against for library "whatever", replace WHATEVER - in the macro name with the name of the library; for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB. Normally if - a compiler supports #pragma - lib, then the correct library - build variant will be automatically selected and linked against, - simply by the act of including one of that library's headers. This - macro turns that feature off. -

        +

        + Tells the config system not to automatically select which library + to link against for library "whatever", replace WHATEVER + in the macro name with the name of the library; for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB. Normally + if a compiler supports #pragma + lib, then the correct + library build variant will be automatically selected and linked + against, simply by the act of including one of that library's headers. + This macro turns that feature off. +

        -

        - BOOST_LIB_DIAGNOSTIC -

        +

        + BOOST_LIB_DIAGNOSTIC +

        -

        - Causes the auto-linking code to output diagnostic messages indicating - the name of the library that is selected for linking. -

        +

        + Causes the auto-linking code to output diagnostic messages indicating + the name of the library that is selected for linking. +

        -

        - BOOST_LIB_TOOLSET -

        +

        + BOOST_LIB_TOOLSET +

        -

        - Overrides the name of the toolset part of the name of library being - linked to; note if defined this must be defined to a quoted string - literal, for example "abc". -

        +

        + Overrides the name of the toolset part of the name of library being + linked to; note if defined this must be defined to a quoted string + literal, for example "abc". +

        -
        +

        Advanced configuration usage @@ -726,7 +722,7 @@

        The following usage examples represent just a few of the possibilities:

        -
        +

        Example 1, creating our own frozen configuration @@ -758,7 +754,7 @@ yet supported by boost.

        -
        +

        Example 2: skipping files that you don't need @@ -777,7 +773,7 @@ a dependency on two boost headers.

        -
        +
        -
        +

        Testing the boost configuration @@ -808,119 +804,119 @@ -

        - File -

        +

        + File +

        -

        - Description -

        +

        + Description +

        -

        - config_info.cpp -

        +

        + config_info.cpp +

        -

        - Prints out a detailed description of your compiler/standard library/platform - setup, plus your current boost configuration. The information provided - by this program useful in setting up the boost configuration files. - If you report that boost is incorrectly configured for your compiler/library/platform - then please include the output from this program when reporting the - changes required. -

        +

        + Prints out a detailed description of your compiler/standard library/platform + setup, plus your current boost configuration. The information provided + by this program useful in setting up the boost configuration files. + If you report that boost is incorrectly configured for your compiler/library/platform + then please include the output from this program when reporting + the changes required. +

        -

        - config_test.cpp -

        +

        + config_test.cpp +

        -

        - A monolithic test program that includes most of the individual test - cases. This provides a quick check to see if boost is correctly configured - for your compiler/library/platform. -

        +

        + A monolithic test program that includes most of the individual + test cases. This provides a quick check to see if boost is correctly + configured for your compiler/library/platform. +

        -

        - limits_test.cpp -

        +

        + limits_test.cpp +

        -

        - Tests your standard library's std::numeric_limits - implementation (or its boost provided replacement if BOOST_NO_LIMITS is defined). This - test file fails with most versions of numeric_limits, mainly due - to the way that some compilers treat NAN's and infinity. -

        +

        + Tests your standard library's std::numeric_limits + implementation (or its boost provided replacement if BOOST_NO_LIMITS is defined). + This test file fails with most versions of numeric_limits, mainly + due to the way that some compilers treat NAN's and infinity. +

        -

        - no_*pass.cpp -

        +

        + no_*pass.cpp +

        -

        - Individual compiler defect test files. Each of these should compile, - if one does not then the corresponding BOOST_NO_XXX - macro needs to be defined - see each test file for specific details. -

        +

        + Individual compiler defect test files. Each of these should compile, + if one does not then the corresponding BOOST_NO_XXX + macro needs to be defined - see each test file for specific details. +

        -

        - no_*fail.cpp -

        +

        + no_*fail.cpp +

        -

        - Individual compiler defect test files. Each of these should not compile, - if one does then the corresponding BOOST_NO_XXX - macro is defined when it need not be - see each test file for specific - details. -

        +

        + Individual compiler defect test files. Each of these should not + compile, if one does then the corresponding BOOST_NO_XXX + macro is defined when it need not be - see each test file for specific + details. +

        -

        - has_*pass.cpp -

        +

        + has_*pass.cpp +

        -

        - Individual feature test files. If one of these does not compile then - the corresponding BOOST_HAS_XXX - macro is defined when it should not be - see each test file for specific - details. -

        +

        + Individual feature test files. If one of these does not compile + then the corresponding BOOST_HAS_XXX + macro is defined when it should not be - see each test file for + specific details. +

        -

        - has_*fail.cpp -

        +

        + has_*fail.cpp +

        -

        - Individual feature test files. If one of these does compile then - the corresponding BOOST_HAS_XXX - macro can be safely defined - see each test file for specific details. -

        +

        + Individual feature test files. If one of these does compile then + the corresponding BOOST_HAS_XXX + macro can be safely defined - see each test file for specific details. +

        @@ -938,16 +934,10 @@

        Alternatively you can run the configure script like this:

        -
        -

        -

        -

        - ./configure - --enable-test -

        -

        -

        -
        +

        + ./configure + --enable-test +

        in which case the script will test the current configuration rather than creating a new one from scratch. @@ -960,10 +950,10 @@

        - +

        Last revised: June 11, 2010 at 11:20:15 GMT

        Last revised: June 30, 2010 at 23:58:03 GMT


        -
        Next
        +
        Next