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 | // no include guards, this file is guarded externally
|
---|
10 |
|
---|
11 | // this file has been generated from the master.hpp file in the same directory
|
---|
12 | namespace boost { namespace function_types {
|
---|
13 | typedef detail::property_tag<0x00000200,0x00000300> non_variadic;
|
---|
14 | typedef detail::property_tag<0x00000100,0x00000300> variadic;
|
---|
15 | typedef detail::property_tag<0,0x00000400> non_const;
|
---|
16 | typedef detail::property_tag<0x00000400,0x00000400> const_qualified;
|
---|
17 | typedef detail::property_tag<0,0x00000800> non_volatile;
|
---|
18 | typedef detail::property_tag<0x00000800,0x00000800> volatile_qualified;
|
---|
19 | typedef detail::property_tag<0x00008000,0x00ff8000> default_cc;
|
---|
20 | typedef detail::property_tag<0 , 3072> non_cv;
|
---|
21 | typedef detail::property_tag<0x00000400 , 3072> const_non_volatile;
|
---|
22 | typedef detail::property_tag<0x00000800, 3072> volatile_non_const;
|
---|
23 | typedef detail::property_tag<3072 , 3072> cv_qualified;
|
---|
24 | namespace detail {
|
---|
25 | typedef constant<0x00ff0fff> full_mask;
|
---|
26 | template <bits_t Flags, bits_t CCID> struct encode_bits_impl
|
---|
27 | {
|
---|
28 | BOOST_STATIC_CONSTANT( bits_t, value =
|
---|
29 | Flags | (0x00008000 * CCID) << 1 );
|
---|
30 | };
|
---|
31 | template <bits_t Flags, bits_t CCID, std::size_t Arity>
|
---|
32 | struct encode_charr_impl
|
---|
33 | {
|
---|
34 | BOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
|
---|
35 | Flags | (0x00008000 * CCID) << 1 | Arity << 24
|
---|
36 | ));
|
---|
37 | };
|
---|
38 | template <bits_t Bits> struct decode_bits
|
---|
39 | {
|
---|
40 | BOOST_STATIC_CONSTANT(bits_t, flags = Bits & 0x00000fff);
|
---|
41 | BOOST_STATIC_CONSTANT(bits_t, cc_id =
|
---|
42 | ( (Bits & 0x00ff0fff) / 0x00008000) >> 1
|
---|
43 | );
|
---|
44 | BOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & 0x00ff0fff));
|
---|
45 | BOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
|
---|
46 | (Bits >> 24)
|
---|
47 | );
|
---|
48 | };
|
---|
49 | template <bits_t LHS_bits, bits_t LHS_mask, bits_t RHS_bits, bits_t RHS_mask>
|
---|
50 | struct tag_ice
|
---|
51 | {
|
---|
52 | BOOST_STATIC_CONSTANT(bool, match =
|
---|
53 | RHS_bits == (LHS_bits & RHS_mask & (RHS_bits | ~0x000000ff))
|
---|
54 | );
|
---|
55 | BOOST_STATIC_CONSTANT(bits_t, combined_bits =
|
---|
56 | (LHS_bits & ~RHS_mask) | RHS_bits
|
---|
57 | );
|
---|
58 | BOOST_STATIC_CONSTANT(bits_t, combined_mask =
|
---|
59 | LHS_mask | RHS_mask
|
---|
60 | );
|
---|
61 | BOOST_STATIC_CONSTANT(bits_t, extracted_bits =
|
---|
62 | LHS_bits & RHS_mask
|
---|
63 | );
|
---|
64 | };
|
---|
65 | typedef property_tag<0x00000001,0x000000ff> callable_builtin_tag;
|
---|
66 | typedef property_tag<0x00000003,0x000000ff> nonmember_callable_builtin_tag;
|
---|
67 | typedef property_tag<0x00000007,0x000000ff> function_tag;
|
---|
68 | typedef property_tag<0x00000013,0x000000ff> reference_tag;
|
---|
69 | typedef property_tag<0x0000000b,0x000000ff> pointer_tag;
|
---|
70 | typedef property_tag<0x00000061,0x000000ff> member_function_pointer_tag;
|
---|
71 | typedef property_tag<0x000000a3,0x000000ff> member_object_pointer_tag;
|
---|
72 | typedef property_tag<0x000002a3,0x00ff0fff> member_object_pointer_base;
|
---|
73 | typedef property_tag<0x00000020,0x000000ff> member_pointer_tag;
|
---|
74 | typedef property_tag< 33287 , 16745471 > nv_dcc_func;
|
---|
75 | typedef property_tag< 33377 , 16745471 > nv_dcc_mfp;
|
---|
76 | }
|
---|
77 | } }
|
---|