Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/xpressive/xpressive_fwd.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children | c530137014c0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DEPENDENCIES/generic/include/boost/xpressive/xpressive_fwd.hpp Tue Aug 05 11:11:38 2014 +0100 @@ -0,0 +1,243 @@ +/////////////////////////////////////////////////////////////////////////////// +/// \file xpressive_fwd.hpp +/// Forward declarations for all of xpressive's public data types. +// +// Copyright 2008 Eric Niebler. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_XPRESSIVE_XPRESSIVE_FWD_HPP_EAN_10_04_2005 +#define BOOST_XPRESSIVE_XPRESSIVE_FWD_HPP_EAN_10_04_2005 + +// MS compatible compilers support #pragma once +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +#include <string> +#include <boost/config.hpp> +#include <boost/version.hpp> +#include <boost/iterator/iterator_traits.hpp> + +#if BOOST_VERSION >= 103500 +# define BOOST_PROTO_FUSION_V2 +#endif + +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# error Sorry, xpressive requires a compiler that supports partial template specialization. +#endif + +#if defined(BOOST_NO_STD_LOCALE) & !defined(BOOST_XPRESSIVE_USE_C_TRAITS) +# define BOOST_XPRESSIVE_USE_C_TRAITS +#endif + +#if defined(BOOST_NO_CWCHAR) || defined(BOOST_NO_CWCTYPE) || defined(BOOST_NO_STD_WSTRING) +# ifndef BOOST_XPRESSIVE_NO_WREGEX +# define BOOST_XPRESSIVE_NO_WREGEX +# endif +#endif + +// Stack protection under MS Windows +// Config logic taken from boost/regex/config.hpp +#ifndef BOOST_XPRESSIVE_HAS_MS_STACK_GUARD +# if (defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \ + && !defined(__GNUC__) \ + && !(defined(__BORLANDC__) && (__BORLANDC__ >= 0x600)) \ + && !(defined(__MWERKS__) && (__MWERKS__ <= 0x3003)) +# define BOOST_XPRESSIVE_HAS_MS_STACK_GUARD 1 +# else +# define BOOST_XPRESSIVE_HAS_MS_STACK_GUARD 0 +# endif +#endif + +#include <boost/proto/proto_fwd.hpp> + +namespace boost { namespace xpressive +{ + + template<typename Char> + struct cpp_regex_traits; + + template<typename Char> + struct c_regex_traits; + + template<typename Elem> + struct null_regex_traits; + + namespace detail + { + template<typename Char> + struct default_regex_traits + { + #ifdef BOOST_XPRESSIVE_USE_C_TRAITS + typedef c_regex_traits<Char> type; + #else + typedef cpp_regex_traits<Char> type; + #endif + }; + + struct mark_placeholder; + typedef proto::expr<proto::tag::terminal, proto::term<mark_placeholder>, 0> basic_mark_tag; + + struct regex_domain; + + } // namespace detail + + struct mark_tag; + + typedef void const *regex_id_type; + + struct regex_error; + + struct regex_traits_version_1_tag; + + struct regex_traits_version_2_tag; + + // DEPRECATED + /// INTERNAL ONLY + /// + struct regex_traits_version_1_case_fold_tag; + + template<typename Trait> + struct has_fold_case; + + template<typename BidiIter> + struct basic_regex; + + template<typename BidiIter> + struct match_results; + + template<typename BidiIter> + struct regex_iterator; + + template<typename BidiIter> + struct regex_token_iterator; + + template<typename BidiIter> + struct regex_id_filter_predicate; + + template<typename BidiIter> + struct sub_match; + + template<typename RegexTraits> + struct compiler_traits; + + template<typename Char, typename Impl = typename detail::default_regex_traits<Char>::type> + struct regex_traits; + + template + < + typename BidiIter + , typename RegexTraits = regex_traits<typename iterator_value<BidiIter>::type> + , typename CompilerTraits = compiler_traits<RegexTraits> + > + struct regex_compiler; + + template<typename T> + struct value; + + template<typename T> + struct reference; + + template<typename T> + struct local; + + template<typename T, int I = 0, typename Dummy = proto::is_proto_expr> + struct placeholder; + + namespace op + { + struct at; + struct push; + struct push_back; + struct push_front; + struct pop; + struct pop_back; + struct pop_front; + struct front; + struct back; + struct top; + struct first; + struct second; + struct matched; + struct length; + struct str; + struct insert; + struct make_pair; + template<typename T> + struct as; + template<typename T> + struct static_cast_; + template<typename T> + struct dynamic_cast_; + template<typename T> + struct const_cast_; + template<typename T> + struct construct; + template<typename Except> + struct throw_; + struct unwrap_reference; + } + + /////////////////////////////////////////////////////////////////////////////// + // Common typedefs + // + typedef basic_regex<std::string::const_iterator> sregex; + typedef basic_regex<char const *> cregex; + + #ifndef BOOST_XPRESSIVE_NO_WREGEX + typedef basic_regex<std::wstring::const_iterator> wsregex; + typedef basic_regex<wchar_t const *> wcregex; + #endif + + typedef sub_match<std::string::const_iterator> ssub_match; + typedef sub_match<char const *> csub_match; + + #ifndef BOOST_XPRESSIVE_NO_WREGEX + typedef sub_match<std::wstring::const_iterator> wssub_match; + typedef sub_match<wchar_t const *> wcsub_match; + #endif + + typedef regex_compiler<std::string::const_iterator> sregex_compiler; + typedef regex_compiler<char const *> cregex_compiler; + + #ifndef BOOST_XPRESSIVE_NO_WREGEX + typedef regex_compiler<std::wstring::const_iterator> wsregex_compiler; + typedef regex_compiler<wchar_t const *> wcregex_compiler; + #endif + + typedef regex_iterator<std::string::const_iterator> sregex_iterator; + typedef regex_iterator<char const *> cregex_iterator; + + #ifndef BOOST_XPRESSIVE_NO_WREGEX + typedef regex_iterator<std::wstring::const_iterator> wsregex_iterator; + typedef regex_iterator<wchar_t const *> wcregex_iterator; + #endif + + typedef regex_token_iterator<std::string::const_iterator> sregex_token_iterator; + typedef regex_token_iterator<char const *> cregex_token_iterator; + + #ifndef BOOST_XPRESSIVE_NO_WREGEX + typedef regex_token_iterator<std::wstring::const_iterator> wsregex_token_iterator; + typedef regex_token_iterator<wchar_t const *> wcregex_token_iterator; + #endif + + typedef match_results<std::string::const_iterator> smatch; + typedef match_results<char const *> cmatch; + + #ifndef BOOST_XPRESSIVE_NO_WREGEX + typedef match_results<std::wstring::const_iterator> wsmatch; + typedef match_results<wchar_t const *> wcmatch; + #endif + + typedef regex_id_filter_predicate<std::string::const_iterator> sregex_id_filter_predicate; + typedef regex_id_filter_predicate<char const *> cregex_id_filter_predicate; + + #ifndef BOOST_XPRESSIVE_NO_WREGEX + typedef regex_id_filter_predicate<std::wstring::const_iterator> wsregex_id_filter_predicate; + typedef regex_id_filter_predicate<wchar_t const *> wcregex_id_filter_predicate; + #endif + +}} // namespace boost::xpressive + +#endif