codegear.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 136 行

HPP
136
字号
//  (C) Copyright John Maddock 2001 - 2003.//  (C) Copyright David Abrahams 2002 - 2003.//  (C) Copyright Aleksey Gurtovoy 2002.//  Use, modification and distribution are subject to 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)//  See http://www.boost.org for most recent version.//  CodeGear C++ compiler setup:#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )// these warnings occur frequently in optimized template code# pragma warn -8004 // var assigned value, but never used# pragma warn -8008 // condition always true/false# pragma warn -8066 // dead code can never execute# pragma warn -8104 // static members with ctors not threadsafe# pragma warn -8105 // reference member in class without ctors#endif//// versions check:// last known and checked version is 0x610#if (__CODEGEARC__ > 0x610)#  if defined(BOOST_ASSERT_CONFIG)#     error "Unknown compiler version - please run the configure tests and report the results"#  else#     pragma message( "Unknown compiler version - please run the configure tests and report the results")#  endif#endif// CodeGear C++ Builder 2009#if (__CODEGEARC__ <= 0x610)#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS#  define BOOST_NO_PRIVATE_IN_AGGREGATE#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE#  define BOOST_NO_USING_TEMPLATE   // we shouldn't really need this - but too many things choke   // without it, this needs more investigation:#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS#  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member// Temporary hack, until specific MPL preprocessed headers are generated#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS#  ifdef NDEBUG      // fix broken <cstring> so that Boost.test works:#     include <cstring>#     undef strcmp#  endif   // fix broken errno declaration:#  include <errno.h>#  ifndef errno#     define errno errno#  endif#endif#  define BOOST_HAS_CHAR16_T#  define BOOST_HAS_CHAR32_T#  define BOOST_HAS_LONG_LONG//#  define BOOST_HAS_ALIGNOF#  define BOOST_HAS_DECLTYPE#  define BOOST_HAS_EXPLICIT_CONVERSION_OPS//#  define BOOST_HAS_RVALUE_REFS#  define BOOST_HAS_SCOPED_ENUM//#  define BOOST_HAS_STATIC_ASSERT#  define BOOST_HAS_STD_TYPE_TRAITS#  define BOOST_HAS_TR1_HASH#  define BOOST_HAS_TR1_TYPE_TRAITS#  define BOOST_HAS_TR1_UNORDERED_MAP#  define BOOST_HAS_TR1_UNORDERED_SET#  define BOOST_HAS_MACRO_USE_FACET   // On non-Win32 platforms let the platform config figure this out:# ifdef _WIN32#    define BOOST_HAS_STDINT_H# endif//// __int64://#if !defined(__STRICT_ANSI__)#  define BOOST_HAS_MS_INT64#endif//// check for exception handling support://#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)#  define BOOST_NO_EXCEPTIONS#endif//// all versions have a <dirent.h>://#if !defined(__STRICT_ANSI__)#  define BOOST_HAS_DIRENT_H#endif//// all versions support __declspec://#if !defined(__STRICT_ANSI__)#  define BOOST_HAS_DECLSPEC#endif//// ABI fixing headers://#ifndef BOOST_ABI_PREFIX#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"#endif#ifndef BOOST_ABI_SUFFIX#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"#endif//// Disable Win32 support in ANSI mode://#  pragma defineonoption BOOST_DISABLE_WIN32 -A//// MSVC compatibility mode does some nasty things:// TODO: look up if this doesn't apply to the whole 12xx range//#if defined(_MSC_VER) && (_MSC_VER <= 1200)#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP#  define BOOST_NO_VOID_RETURNS#endif#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?