/////////////////////////////////////////////////////////////////////////////// /// \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) # pragma once #endif #include #include #include #include #if BOOST_VERSION >= 103500 # define BOOST_PROTO_FUSION_V2 #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__) && defined(__clang__)) \ && !(defined(BOOST_BORLANDC) && (BOOST_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 namespace boost { namespace xpressive { template struct cpp_regex_traits; template struct c_regex_traits; template struct null_regex_traits; namespace detail { template struct default_regex_traits { #ifdef BOOST_XPRESSIVE_USE_C_TRAITS typedef c_regex_traits type; #else typedef cpp_regex_traits type; #endif }; struct mark_placeholder; typedef proto::expr, 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 struct has_fold_case; template struct basic_regex; template struct match_results; template struct regex_iterator; template struct regex_token_iterator; template struct regex_id_filter_predicate; template struct sub_match; template struct compiler_traits; template::type> struct regex_traits; template < typename BidiIter , typename RegexTraits = regex_traits::type> , typename CompilerTraits = compiler_traits > struct regex_compiler; template struct value; template struct reference; template struct local; template 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 struct as; template struct static_cast_; template struct dynamic_cast_; template struct const_cast_; template struct construct; template struct throw_; struct unwrap_reference; } /////////////////////////////////////////////////////////////////////////////// // Common typedefs // typedef basic_regex sregex; typedef basic_regex cregex; #ifndef BOOST_XPRESSIVE_NO_WREGEX typedef basic_regex wsregex; typedef basic_regex wcregex; #endif typedef sub_match ssub_match; typedef sub_match csub_match; #ifndef BOOST_XPRESSIVE_NO_WREGEX typedef sub_match wssub_match; typedef sub_match wcsub_match; #endif typedef regex_compiler sregex_compiler; typedef regex_compiler cregex_compiler; #ifndef BOOST_XPRESSIVE_NO_WREGEX typedef regex_compiler wsregex_compiler; typedef regex_compiler wcregex_compiler; #endif typedef regex_iterator sregex_iterator; typedef regex_iterator cregex_iterator; #ifndef BOOST_XPRESSIVE_NO_WREGEX typedef regex_iterator wsregex_iterator; typedef regex_iterator wcregex_iterator; #endif typedef regex_token_iterator sregex_token_iterator; typedef regex_token_iterator cregex_token_iterator; #ifndef BOOST_XPRESSIVE_NO_WREGEX typedef regex_token_iterator wsregex_token_iterator; typedef regex_token_iterator wcregex_token_iterator; #endif typedef match_results smatch; typedef match_results cmatch; #ifndef BOOST_XPRESSIVE_NO_WREGEX typedef match_results wsmatch; typedef match_results wcmatch; #endif typedef regex_id_filter_predicate sregex_id_filter_predicate; typedef regex_id_filter_predicate cregex_id_filter_predicate; #ifndef BOOST_XPRESSIVE_NO_WREGEX typedef regex_id_filter_predicate wsregex_id_filter_predicate; typedef regex_id_filter_predicate wcregex_id_filter_predicate; #endif }} // namespace boost::xpressive #endif