Update of /cvsroot/boost/boost/boost/function_types/config
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28648/config
Added Files:
cc_names.hpp compiler.hpp config.hpp
Log Message:
adds function_types implementation
--- NEW FILE: cc_names.hpp ---
// (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_CC_NAMES_HPP_INCLUDED
#define BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
#define BOOST_FT_BUILTIN_CC_NAMES \
(( IMPLICIT , implicit_cc , BOOST_PP_EMPTY ))\
(( CDECL , cdecl_cc , BOOST_PP_IDENTITY(__cdecl ) ))\
(( STDCALL , stdcall_cc , BOOST_PP_IDENTITY(__stdcall ) ))\
(( PASCAL , pascal_cc , BOOST_PP_IDENTITY(pascal ) ))\
(( FASTCALL , fastcall_cc , BOOST_PP_IDENTITY(__fastcall) ))\
(( CLRCALL , clrcall_cc , BOOST_PP_IDENTITY(__clrcall ) ))\
(( THISCALL , thiscall_cc , BOOST_PP_IDENTITY(__thiscall) ))\
(( IMPLICIT_THISCALL , thiscall_cc , BOOST_PP_EMPTY ))
// append user-defined cc names to builtin ones
#ifdef BOOST_FT_CC_NAMES
# define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES BOOST_FT_CC_NAMES
# define BOOST_FT_CC_PREPROCESSING 1
#else
# define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES
#endif
#endif
--- NEW FILE: compiler.hpp ---
// (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
// 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_CONFIGURATION_OK
# pragma message("ATTENTION: /Gd /Gr /Gz compiler options will not")
# pragma message("ATTENTION: work with this configuration.")
// TODO: add documentation reference
# 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
#elif defined(__GNUC__) && !defined(BOOST_INTEL_LINUX)
# if __GNUC__ < 3
# error "unsupported compiler version"
# endif
# 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
# // TODO: straighten out this hack
# ifndef __cdecl
# define __cdecl __attribute__((__cdecl__))
# endif
# ifndef __stdcall
# define __stdcall __attribute__((__stdcall__))
# endif
# ifndef __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
# define BOOST_FT_COMMON_X86_CCs callable_builtin
// 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
--- NEW FILE: config.hpp ---
// (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_HPP_INCLUDED
#define BOOST_FT_CONFIG_HPP_INCLUDED
#include <boost/function_types/config/compiler.hpp>
#include <boost/function_types/config/cc_names.hpp>
// maximum allowed arity
#ifndef BOOST_FT_MAX_ARITY
#define BOOST_FT_MAX_ARITY 20
#endif
// the most common calling conventions for x86 architecture can be enabled at
// once in the compiler config
#ifdef BOOST_FT_COMMON_X86_CCs
# ifndef BOOST_FT_CC_CDECL
# define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs
# endif
# ifndef BOOST_FT_CC_STDCALL
# define BOOST_FT_CC_STDCALL non_variadic|BOOST_FT_COMMON_X86_CCs
# endif
# ifndef BOOST_FT_CC_FASTCALL
# define BOOST_FT_CC_FASTCALL non_variadic|BOOST_FT_COMMON_X86_CCs
# endif
#endif
// where to place the cc specifier (the common way)
#ifndef BOOST_FT_SYNTAX
# define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
result() lparen() cc_spec() type_mod() name() rparen()
#endif
// param for nullary functions
// set to "void" for compilers that require nullary functions to read
// "R (void)" in template partial specialization
#ifndef BOOST_FT_NULLARY_PARAM
#define BOOST_FT_NULLARY_PARAM
#endif
// there is a pending defect report on cv qualified function types, so support
// for these types is disabled, unless for compilers where it's known to work
#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
#define BOOST_FT_NO_CV_FUNC_SUPPORT 1
#endif
// full preprocessing implies preprocessing of the ccs
#if defined(BOOST_FT_PREPROCESSING_MODE) && !defined(BOOST_FT_CC_PREPROCESSING)
# define BOOST_FT_CC_PREPROCESSING 1
#endif
#endif
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs