]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | |
2 | // (C) Copyright Tobias Schwinger | |
3 | // | |
4 | // Use modification and distribution are subject to the boost Software License, | |
5 | // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). | |
6 | ||
7 | //------------------------------------------------------------------------------ | |
8 | ||
9 | #ifndef BOOST_FT_CONFIG_HPP_INCLUDED | |
10 | #define BOOST_FT_CONFIG_HPP_INCLUDED | |
11 | ||
12 | #include <boost/function_types/config/compiler.hpp> | |
13 | #include <boost/function_types/config/cc_names.hpp> | |
14 | ||
15 | // maximum allowed arity | |
16 | #ifndef BOOST_FT_MAX_ARITY | |
17 | #define BOOST_FT_MAX_ARITY 20 | |
18 | #endif | |
19 | ||
20 | // the most common calling conventions for x86 architecture can be enabled at | |
21 | // once in the compiler config | |
22 | #ifdef BOOST_FT_COMMON_X86_CCs | |
23 | # ifndef BOOST_FT_CC_CDECL | |
24 | # define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs | |
25 | # endif | |
26 | # ifndef BOOST_FT_CC_STDCALL | |
27 | # define BOOST_FT_CC_STDCALL non_variadic|BOOST_FT_COMMON_X86_CCs | |
28 | # endif | |
29 | # ifndef BOOST_FT_CC_FASTCALL | |
30 | # define BOOST_FT_CC_FASTCALL non_variadic|BOOST_FT_COMMON_X86_CCs | |
31 | # endif | |
32 | #endif | |
33 | ||
34 | // where to place the cc specifier (the common way) | |
35 | #ifndef BOOST_FT_SYNTAX | |
36 | # define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \ | |
37 | result() lparen() cc_spec() type_mod() name() rparen() | |
38 | #endif | |
39 | ||
40 | // param for nullary functions | |
41 | // set to "void" for compilers that require nullary functions to read | |
42 | // "R (void)" in template partial specialization | |
43 | #ifndef BOOST_FT_NULLARY_PARAM | |
44 | #define BOOST_FT_NULLARY_PARAM | |
45 | #endif | |
46 | ||
47 | // there is a pending defect report on cv qualified function types, so support | |
48 | // for these types is disabled, unless for compilers where it's known to work | |
49 | #ifndef BOOST_FT_NO_CV_FUNC_SUPPORT | |
50 | #define BOOST_FT_NO_CV_FUNC_SUPPORT 1 | |
51 | #endif | |
52 | ||
53 | // full preprocessing implies preprocessing of the ccs | |
54 | #if defined(BOOST_FT_PREPROCESSING_MODE) && !defined(BOOST_FT_CC_PREPROCESSING) | |
55 | # define BOOST_FT_CC_PREPROCESSING 1 | |
56 | #endif | |
57 | ||
58 | #endif | |
59 |