1 ///////////////////////////////////////////////////////////////////////////////
2 // icase.hpp
3 //
4 //  Copyright 2008 Eric Niebler. Distributed under the Boost
5 //  Software License, Version 1.0. (See accompanying file
6 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 
8 #ifndef BOOST_XPRESSIVE_DETAIL_CORE_ICASE_HPP_EAN_10_04_2005
9 #define BOOST_XPRESSIVE_DETAIL_CORE_ICASE_HPP_EAN_10_04_2005
10 
11 #include <boost/xpressive/detail/detail_fwd.hpp>
12 #include <boost/xpressive/regex_constants.hpp>
13 #include <boost/xpressive/detail/static/modifier.hpp>
14 #include <boost/xpressive/detail/core/linker.hpp>
15 #include <boost/xpressive/detail/utility/ignore_unused.hpp>
16 
17 namespace boost { namespace xpressive { namespace regex_constants
18 {
19 
20 ///////////////////////////////////////////////////////////////////////////////
21 /// \brief Makes a sub-expression case-insensitive.
22 ///
23 /// Use icase() to make a sub-expression case-insensitive. For instance,
24 /// "foo" >> icase(set['b'] >> "ar") will match "foo" exactly followed by
25 /// "bar" irrespective of case.
26 detail::modifier_op<detail::icase_modifier> const icase = {{}, regex_constants::icase_};
27 
28 } // namespace regex_constants
29 
30 using regex_constants::icase;
31 
32 namespace detail
33 {
ignore_unused_icase()34     inline void ignore_unused_icase()
35     {
36         detail::ignore_unused(icase);
37     }
38 }
39 
40 }} // namespace boost::xpressive
41 
42 #endif
43