compiler.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 117 行
HPP
117 行
// (C) Copyright Tobias Schwinger//// Use modification and distribution are subject to the boost Software License,// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).//------------------------------------------------------------------------------#ifndef BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED#define BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED#include <boost/config.hpp>#include <boost/detail/workaround.hpp>#if defined(BOOST_MSVC)# if BOOST_MSVC < 1310# error "unsupported compiler version"# endif# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS // enable clrcall calling covention (call to .NET managed code) when // compiling with /clr # if BOOST_MSVC >= 1400 && defined(__cplusplus_cli)# ifndef BOOST_FT_CC_CLRCALL# define BOOST_FT_CC_CLRCALL callable_builtin# endif# endif // Intel x86 architecture specific calling conventions# ifdef _M_IX86# define BOOST_FT_COMMON_X86_CCs callable_builtin# if BOOST_MSVC < 1400 // version 7.1 is missing a keyword to specify the thiscall cc ...# ifndef BOOST_FT_CC_IMPLICIT_THISCALL# define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin# ifndef BOOST_FT_CONFIG_OK# pragma message("INFO| /Gd /Gr /Gz will compiler options will cause")# pragma message("INFO| a compile error.")# pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.")# pragma message("INFO| This message can be suppressed by defining")# pragma message("INFO| BOOST_FT_CONFIG_OK.")# endif# endif# else // ...introduced in version 8# ifndef BOOST_FT_CC_THISCALL# define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin# endif# endif# endif# endif#elif defined(__GNUC__) && !defined(BOOST_INTEL_LINUX)# if __GNUC__ < 3# error "unsupported compiler version"# endif# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS# if defined(__i386__)# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328# if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4))# ifndef BOOST_FT_CC_IMPLICIT # define BOOST_FT_CC_IMPLICIT member|callable_builtin# endif# define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin# else# define BOOST_FT_COMMON_X86_CCs callable_builtin# endif# else# ifndef BOOST_FT_CC_IMPLICIT# define BOOST_FT_CC_IMPLICIT callable_builtin# endif# endif# endif# if (defined(BOOST_FT_CC_CDECL) || defined(BOOST_FT_COMMON_X86_CCs)) \ && !defined(__cdecl)# define __cdecl __attribute__((__cdecl__))# endif# if (defined(BOOST_FT_CC_STDCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \ && !defined(__stdcall)# define __stdcall __attribute__((__stdcall__))# endif# if (defined(BOOST_FT_CC_FASTCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \ && !defined(__fastcall)# define __fastcall __attribute__((__fastcall__))# endif#elif defined(__BORLANDC__)# if __BORLANDC__ < 0x550# error "unsupported compiler version"# elif __BORLANDC__ > 0x565# pragma message("WARNING: library untested with this compiler version")# endif# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS# define BOOST_FT_COMMON_X86_CCs callable_builtin# endif // syntactic specialities of cc specifier# define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \ result() cc_spec() lparen() type_mod() name() rparen()#else // only enable default calling convention# define BOOST_FT_CC_IMPLICIT callable_builtin#endif#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?