BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
Compiler
|
The compiler exibits certain partial specialisation bug - probably
Borland C++ Builder specific.
|
BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
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.
|
BOOST_NO_ADL_BARRIER
|
Compiler
|
The compiler locates and searches namespaces that it should *not*
in fact search when performing argument dependent lookup.
|
BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
Compiler
|
Compiler does not implement argument-dependent lookup (also named
Koenig lookup); see std::3.4.2 [basic.koenig.lookup]
|
BOOST_NO_AUTO_PTR
|
Standard library
|
If the compiler / library supplies non-standard or broken std::auto_ptr .
|
BOOST_NO_CTYPE_FUNCTIONS
|
Platform
|
The Platform does not provide functions for the character-classifying
operations <ctype.h> and <cctype> ,
only macros.
|
BOOST_NO_CV_SPECIALIZATIONS
|
Compiler
|
If template specialisations for cv-qualified types conflict with
a specialisation for a cv-unqualififed type.
|
BOOST_NO_CV_VOID_SPECIALIZATIONS
|
Compiler
|
If template specialisations for cv-void types conflict with a specialisation
for void.
|
BOOST_NO_CWCHAR
|
Platform
|
The Platform does not provide <wchar.h>
and <cwchar> .
|
BOOST_NO_CWCTYPE
|
Platform
|
The Platform does not provide <wctype.h>
and <cwctype> .
|
BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
Compiler
|
The compiler fails to compile a nested class that has a dependent
base class:
template<typename T>
struct foo : {
template<typename U>
struct bar : public U {};
};
|
BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
Compiler
|
Template value parameters cannot have a dependent type, for example:
template<class T, typename T::type value>
class X { ... };
|
BOOST_NO_EXCEPTION_STD_NAMESPACE
|
Standard Library
|
The standard library does not put some or all of the contents of
<exception> in namespace std.
|
BOOST_NO_EXCEPTIONS
|
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!
|
BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
Compiler
|
Can only use deduced template arguments when calling function template
instantiations.
|
BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
Compiler
|
The compiler does not perform function template ordering or its function
template ordering is incorrect.
template<class T> void f(T);
template<class T,class U> void f(T(*)(U));
void bar(int);
f(&bar);
|
BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
Compiler
|
Compiler violates std::9.4.2/4.
|
BOOST_NO_INTRINSIC_WCHAR_T
|
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.
|
BOOST_NO_IOSFWD
|
std lib
|
The standard library lacks <iosfwd> .
|
BOOST_NO_IOSTREAM
|
std lib
|
The standard library lacks <iostream> ,
<istream> or <ostream> .
|
BOOST_NO_IS_ABSTRACT
|
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.
|
BOOST_NO_LIMITS
|
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 .
|
BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
Standard library
|
Constants such as numeric_limits<T>::is_signed
are not available for use at compile-time.
|
BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
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.
|
BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
Compiler
|
The compiler does not support the specialization of individual member
functions of template classes.
|
BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
Compiler
|
If the compiler supports member templates, but not the template keyword
when accessing member template classes.
|
BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
Compiler
|
Member template friend syntax (template<class
P>
friend class
frd; )
described in the C++ Standard, 14.5.3, not supported.
|
BOOST_NO_MEMBER_TEMPLATES
|
Compiler
|
Member template functions not fully supported.
|
BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
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.
|
BOOST_NO_OPERATORS_IN_NAMESPACE
|
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.
|
BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
Compiler
|
The compiler does not correctly handle partial specializations which
depend upon default arguments in the primary template.
|
BOOST_NO_POINTER_TO_MEMBER_CONST
|
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.
|
BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
Compiler
|
Pointers to members don't work when used as template parameters.
|
BOOST_NO_PRIVATE_IN_AGGREGATE
|
Compiler
|
The compiler misreads 8.5.1, treating classes as non-aggregate if
they contain private or protected member functions.
|
BOOST_NO_SFINAE
|
Compiler
|
The compiler does not support the "Substitution Failure Is Not
An Error" meta-programming idiom.
|
BOOST_NO_STD_ALLOCATOR
|
Standard library
|
The C++ standard library does not provide a standards conforming
std::allocator .
|
BOOST_NO_STD_DISTANCE
|
Standard library
|
The platform does not have a conforming version of std::distance .
|
BOOST_NO_STD_ITERATOR
|
Standard library
|
The C++ implementation fails to provide the std::iterator
class.
|
BOOST_NO_STD_ITERATOR_TRAITS
|
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.
|
BOOST_NO_STD_LOCALE
|
Standard library
|
The standard library lacks std::locale .
|
BOOST_NO_STD_MESSAGES
|
Standard library
|
The standard library lacks a conforming std::messages
facet.
|
BOOST_NO_STD_MIN_MAX
|
Standard library
|
The C++ standard library does not provide the min() and max() template functions that should
be in <algorithm> .
|
BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
Standard library
|
Defined if the standard library's output iterators are not assignable.
|
BOOST_NO_STD_TYPEINFO
|
Standard library
|
The <typeinfo> header declares type_info
in the global namespace instead of namespace std.
|
BOOST_NO_STD_USE_FACET
|
Standard library
|
The standard library lacks a conforming std::use_facet .
|
BOOST_NO_STD_WSTREAMBUF
|
Standard library
|
The standard library's implementation of std::basic_streambuf<wchar_t> is either missing, incomplete,
or buggy.
|
BOOST_NO_STD_WSTRING
|
Standard library
|
The standard library lacks std::wstring .
|
BOOST_NO_STDC_NAMESPACE
|
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...
|
BOOST_NO_STRINGSTREAM
|
Standard library
|
The C++ implementation does not provide the <sstream>
header.
|
BOOST_NO_SWPRINTF
|
Platform
|
The platform does not have a conforming version of swprintf .
|
BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
Compiler
|
Class template partial specialization (14.5.4 [temp.class.spec])
not supported.
|
BOOST_NO_TEMPLATED_IOSTREAMS
|
Standard library
|
The standard library does not provide templated iostream classes.
|
BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
Standard library
|
The standard library does not provide templated iterator constructors
for its containers.
|
BOOST_NO_TEMPLATE_TEMPLATES
|
Compiler
|
The compiler does not support template template parameters.
|
BOOST_NO_TYPEID
|
Compiler
|
The compiler does not support the typeid operator at all.
|
BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
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.
|
BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
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.
|
BOOST_NO_USING_TEMPLATE
|
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).
|
BOOST_NO_VOID_RETURNS
|
Compiler
|
The compiler does not allow a void function to return the result
of calling another void function.
void f() {}
void g() { return f(); }
|