6 * Use, modification and distribution are subject to the
7 * Boost Software License, Version 1.0. (See accompanying file
8 * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
12 #include <boost/config.hpp>
14 #if defined(BOOST_MSVC)
15 // this lets us compile at warning level 4 without seeing concept-check related warnings
16 # pragma warning(disable:4100)
19 #pragma option -w-8019 -w-8004 -w-8008
22 #pragma warning(disable:1418 981 983 595 383)
25 #include <boost/regex.hpp>
26 #include <boost/detail/workaround.hpp>
27 #if !BOOST_WORKAROUND(_MSC_VER, < 1310) && !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__GNUC__, < 3)
28 #include <boost/regex/concepts.hpp>
34 // VC6 and VC7 can't cope with the iterator architypes,
35 // don't bother testing as it doesn't work:
36 #if !BOOST_WORKAROUND(_MSC_VER, < 1310) && !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__GNUC__, < 3)
37 boost::function_requires
<
38 boost::RegexTraitsConcept
<
39 boost::regex_traits
<char>
42 #ifndef BOOST_NO_STD_LOCALE
43 boost::function_requires
<
44 boost::BoostRegexConcept
<
45 boost::basic_regex
<char, boost::cpp_regex_traits
<char> >
48 #ifndef BOOST_NO_WREGEX
49 boost::function_requires
<
50 boost::BoostRegexConcept
<
51 boost::basic_regex
<wchar_t, boost::cpp_regex_traits
<wchar_t> >
56 #if !BOOST_WORKAROUND(__BORLANDC__, < 0x560)
57 boost::function_requires
<
58 boost::BoostRegexConcept
<
59 boost::basic_regex
<char, boost::c_regex_traits
<char> >
62 #ifndef BOOST_NO_WREGEX
63 boost::function_requires
<
64 boost::BoostRegexConcept
<
65 boost::basic_regex
<wchar_t, boost::c_regex_traits
<wchar_t> >
70 #if defined(_WIN32) && !defined(BOOST_REGEX_NO_W32)
71 boost::function_requires
<
72 boost::BoostRegexConcept
<
73 boost::basic_regex
<char, boost::w32_regex_traits
<char> >
76 #ifndef BOOST_NO_WREGEX
77 boost::function_requires
<
78 boost::BoostRegexConcept
<
79 boost::basic_regex
<wchar_t, boost::w32_regex_traits
<wchar_t> >
85 // now test the regex_traits concepts:
87 typedef boost::basic_regex
<char, boost::regex_traits_architype
<char> > regex_traits_tester_type1
;
88 boost::function_requires
<
89 boost::BoostRegexConcept
<
90 regex_traits_tester_type1
93 #if !defined(__MWERKS__) && !defined(__SUNPRO_CC) // MWCW tries to instantiate std::basic_string<boost::char_architype>, not sure whose bug this is....
94 typedef boost::basic_regex
<boost::char_architype
, boost::regex_traits_architype
<boost::char_architype
> > regex_traits_tester_type2
;
95 boost::function_requires
<
96 boost::BaseRegexConcept
<
97 regex_traits_tester_type2