preprocessed.hpp 2.9 KB

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