is_ucase_letter.hpp 887 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef BOOST_METAPARSE_V1_UTIL_IS_UCASE_LETTER_HPP
  2. #define BOOST_METAPARSE_V1_UTIL_IS_UCASE_LETTER_HPP
  3. // Copyright Abel Sinkovics ([email protected]) 2009 - 2010.
  4. // Distributed under the Boost Software License, Version 1.0.
  5. // (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. #include <boost/metaparse/v1/util/in_range_c.hpp>
  8. #include <boost/mpl/vector.hpp>
  9. namespace boost
  10. {
  11. namespace metaparse
  12. {
  13. namespace v1
  14. {
  15. namespace util
  16. {
  17. template <class C = boost::mpl::na>
  18. struct is_ucase_letter : in_range_c<char, 'A', 'Z'>::apply<C> {};
  19. template <>
  20. struct is_ucase_letter<boost::mpl::na>
  21. {
  22. typedef is_ucase_letter type;
  23. template <class C = boost::mpl::na>
  24. struct apply : is_ucase_letter<C> {};
  25. };
  26. }
  27. }
  28. }
  29. }
  30. #endif