macro_reference.qbk
来自「Boost provides free peer-reviewed portab」· QBK 代码 · 共 903 行 · 第 1/3 页
QBK
903 行
[/ Boost.Config Copyright (c) 2001 Beman Dawes Copyright (c) 2001 Vesa Karvonen Copyright (c) 2001 John Maddock 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)][section Boost Macro Reference][#config_defects][section Macros that describe defects]The following macros all describe features that are required by the C++ standard,if one of the following macros is defined, then it represents a defect in thecompiler's conformance with the standard.[table[[Macro ][Section ][ Description ]][[`BOOST_BCB_PARTIAL_SPECIALIZATION_BUG`][Compiler][The compiler exibits certain partial specialisation bug - probably BorlandC++ Builder specific.]][[`BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL`][Compiler][Argument dependent lookup fails if there is a using declaration for thesymbol 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). ProbablyBorland 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 namedKoenig 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-classifyingoperations `<ctype.h>` and `<cctype>`, only macros.]][[`BOOST_NO_CV_SPECIALIZATIONS`][Compiler][If template specialisations for cv-qualified types conflict with aspecialisation for a cv-unqualififed type.]][[`BOOST_NO_CV_VOID_SPECIALIZATIONS`][Compiler][If template specialisations for cv-void types conflict with a specialisationfor 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 typicallyrequired by many C++ compilers for embedded platforms). Note that there isno requirement for boost libraries to honor this configuration setting -indeed doing so may be impossible in some cases. Those libraries that dohonor this will typically abort if a critical error occurs - you have beenwarned!]][[`BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS`][Compiler][Can only use deduced template arguments when calling function templateinstantiations.]][[`BOOST_NO_FUNCTION_TEMPLATE_ORDERING`][Compiler][The compiler does not perform function template ordering or its functiontemplate ordering is incorrect.``// #1template<class T> void f(T);// #2template<class T,class U> void f(T(*)(U));void bar(int);f(&bar); // should choose #2.``]][[`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 synonymfor another integral type. Use this symbol to decide whether it is appropriateto explicitly specialize a template on `wchar_t` if there is already aspecialization 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 coveredby __CORE_LANGUAGE_DR337__, but is not part of the current standard. Fortunatelymost compilers that support SFINAE also support this DR.]][[`BOOST_NO_LIMITS`][Standard library][The C++ implementation does not provide the `<limits>` header. Never check forthis symbol in library code; always include `<boost/limits.hpp>`, whichguarantees 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 useat 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 thesespecializations 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 memberfunctions of template classes.]][[`BOOST_NO_MEMBER_TEMPLATE_KEYWORD`][Compiler][If the compiler supports member templates, but not the template keywordwhen 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 thesespecializations as a standard library "fix", only if the compiler supportsthe `__int64` datatype.]][[`BOOST_NO_NESTED_FRIENDSHIP`][Compiler][Compiler doesn't allow a nested class to access private members of itscontaining class. Probably Borland/CodeGear specific.]][[`BOOST_NO_OPERATORS_IN_NAMESPACE`][Compiler][Compiler requires inherited operator friend functions to be defined atnamespace scope, then using'ed to boost. Probably GCC specific. See[@../../../../boost/operators.hpp `<boost/operators.hpp>`] for example.]][[`BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS`][Compiler][The compiler does not correctly handle partial specializationswhich 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 `<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 theycontain private or protected member functions.]][[`BOOST_NO_RTTI`][Compiler][The compiler may (or may not) have the typeid operator, but RTTI on the dynamic typeof an object is not supported.]][[`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 anon-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()` templatefunctions 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 isdifficult - some libraries "fake" the std C functions by adding usingdeclarations to import them into namespace std, unfortunately they don'tnecessarily 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\]) notsupported.]][[`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 constructorsfor 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_TYPENAME_WITH_CTOR`][Compiler][The typename keyword cannot be used when creating a temporary of aDependent type.]][[`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 warningsif 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 functionfrom a typename used as a base class into a derived class if functions ofthe same name are present in the derived class.]][[`BOOST_NO_USING_TEMPLATE`][Compiler][The compiler will not accept a using declaration that imports a templateclass or function from another namespace. Originally a Borland specificproblem with imports to/from the global namespace, extended to MSVC6which has a specific issue with importing template classes (but notfunctions).]][[`BOOST_NO_VOID_RETURNS`][Compiler][The compiler does not allow a void function to return the result of callinganother void function.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?