euml_typeof.hpp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // Copyright 2008 Christophe Henry
  2. // henry UNDERSCORE christophe AT hotmail DOT com
  3. // This is an extended version of the state machine available in the boost::mpl library
  4. // Distributed under the same license as the original.
  5. // Copyright for the original version:
  6. // Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed
  7. // under the Boost Software License, Version 1.0. (See accompanying
  8. // file LICENSE_1_0.txt or copy at
  9. // http://www.boost.org/LICENSE_1_0.txt)
  10. #ifndef BOOST_MSM_FRONT_EUML_TYPEOF_H
  11. #define BOOST_MSM_FRONT_EUML_TYPEOF_H
  12. #include <boost/typeof/typeof.hpp>
  13. #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
  14. BOOST_TYPEOF_REGISTER_TEMPLATE(::boost::mpl::vector0, 1)
  15. BOOST_TYPEOF_REGISTER_TEMPLATE(::boost::mpl::vector50, 50)
  16. BOOST_TYPEOF_REGISTER_TYPE(::boost::mpl::na)
  17. BOOST_TYPEOF_REGISTER_TEMPLATE(::boost::fusion::vector, 10)
  18. BOOST_TYPEOF_REGISTER_TYPE(::boost::fusion::void_)
  19. BOOST_TYPEOF_REGISTER_TEMPLATE(::boost::mpl::vector, 20)
  20. BOOST_TYPEOF_REGISTER_TYPE(std::string)
  21. BOOST_TYPEOF_REGISTER_TEMPLATE(::boost::mpl::size_t, (unsigned int))
  22. BOOST_TYPEOF_REGISTER_TYPE(::boost::msm::front::default_base_state)
  23. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::detail::inherit_attributes, 1)
  24. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::func_state, 6)
  25. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::entry_func_state, (int)(typename)(typename)(typename)(typename)(typename)(typename))
  26. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::explicit_entry_func_state, (int)(typename)(typename)(typename)(typename)(typename)(typename))
  27. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::exit_func_state, 7)
  28. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::define_flag, 1)
  29. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::attribute, 1)
  30. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::define_defer, 1)
  31. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::define_init, 1)
  32. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Source_, (int))
  33. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Target_, (int))
  34. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Current_, (int))
  35. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Event_, (int))
  36. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::State_Attribute_, (typename)(int))
  37. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::State_Machine_, (int))
  38. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::none)
  39. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::Row, 5)
  40. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::ActionSequence_, 1)
  41. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::NoAction)
  42. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::And_, 2)
  43. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Or_, 2)
  44. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Not_, 1)
  45. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::If_Else_, 3)
  46. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::If)
  47. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::If_Then_, 2)
  48. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::If_Then)
  49. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::While_Do_, 2)
  50. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::While_)
  51. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Do_While_, 2)
  52. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Do_While_)
  53. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::For_Loop_, 4)
  54. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::For_Loop_)
  55. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Process_, 1)
  56. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Process_)
  57. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Process2_, 2)
  58. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Process2_)
  59. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Get_Flag_, 1)
  60. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Get_Flag_)
  61. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Begin_, 1)
  62. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Begin_Helper)
  63. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::End_, 1)
  64. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::End_Helper)
  65. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Deref_, 1)
  66. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Deref_Helper)
  67. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Push_Back_, 2)
  68. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Push_Back_Helper)
  69. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Clear_, 1)
  70. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Clear_Helper)
  71. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Empty_, 1)
  72. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Empty_Helper)
  73. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Find_, 2)
  74. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Find_Helper)
  75. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Npos_, 1)
  76. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::False_)
  77. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::True_)
  78. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Int_, (int))
  79. BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::Int)
  80. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Pre_inc_, 1)
  81. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Pre_dec_, 1)
  82. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Post_inc_, 1)
  83. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Post_dec_, 1)
  84. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Plus_, 2)
  85. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Minus_, 2)
  86. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Multiplies_, 2)
  87. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Divides_, 2)
  88. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Modulus_, 2)
  89. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Bitwise_And_, 2)
  90. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Bitwise_Or_, 2)
  91. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Bitwise_Xor_, 2)
  92. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Subscript_, 2)
  93. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Plus_Assign_, 2)
  94. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Minus_Assign_, 2)
  95. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Multiplies_Assign_, 2)
  96. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Divides_Assign_, 2)
  97. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Modulus_Assign_, 2)
  98. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::ShiftLeft_Assign_, 2)
  99. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::ShiftRight_Assign_, 2)
  100. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::ShiftLeft_, 2)
  101. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::ShiftRight_, 2)
  102. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Assign_, 2)
  103. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Unary_Plus_, 1)
  104. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Unary_Minus_, 1)
  105. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Less_, 2)
  106. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::LessEqual_, 2)
  107. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::Greater_, 2)
  108. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::GreaterEqual_, 2)
  109. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::EqualTo_, 2)
  110. BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::NotEqualTo_, 2)
  111. #endif //BOOST_MSM_FRONT_EUML_TYPEOF_H