scoped_enum_emulation.hpp 844 B

123456789101112131415161718192021222324252627282930
  1. // Copyright (c) 2001-2011 Hartmut Kaiser
  2. // http://spirit.sourceforge.net/
  3. //
  4. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. #ifndef BOOST_SPIRIT_SCOPED_ENUM_EMULATION_HPP
  7. #define BOOST_SPIRIT_SCOPED_ENUM_EMULATION_HPP
  8. #if defined(_MSC_VER)
  9. #pragma once
  10. #endif
  11. #include <boost/version.hpp>
  12. #include <boost/config.hpp>
  13. #if BOOST_VERSION >= 105600
  14. # include <boost/core/scoped_enum.hpp>
  15. #elif BOOST_VERSION >= 104000
  16. # include <boost/detail/scoped_enum_emulation.hpp>
  17. #else
  18. # if !defined(BOOST_NO_CXX11_SCOPED_ENUMS)
  19. # define BOOST_NO_CXX11_SCOPED_ENUMS
  20. # endif
  21. # define BOOST_SCOPED_ENUM_START(name) struct name { enum enum_type
  22. # define BOOST_SCOPED_ENUM_END };
  23. # define BOOST_SCOPED_ENUM(name) name::enum_type
  24. #endif
  25. #endif