リファレンス

<boost/xpressive/basic_regex.hpp> ヘッダ

basic_regex<> クラステンプレートの定義と、関連するヘルパ関数がある。

namespace boost {
  namespace xpressive {
    template<typename BidiIter> struct basic_regex;
    template<typename BidiIter> void swap(basic_regex< BidiIter > &, basic_regex< BidiIter > &);
  }
}

<boost/xpressive/match_results.hpp> ヘッダ

match_results 型の定義と、関連するヘルパがある。match_results 型は regex_match および regex_search 操作の結果を保持する。

namespace boost {
  namespace xpressive {
    template<typename BidiIter> struct match_results;
    template<typename BidiIter> struct regex_id_filter_predicate;
  }
}

<boost/xpressive/regex_actions.hpp> ヘッダ

xpressive におけるアクション式の構文要素がある。

namespace boost {
  namespace xpressive {
    template<typename PolymorphicFunctionObject> struct function;
    template<typename T> struct local;
    template<typename T, int I, typename Dummy> struct placeholder;
    template<typename T> struct reference;
    template<typename T> struct value;
    function< op::at >::type const at;
    function< op::push >::type const push;
    function< op::push_back >::type const push_back;
    function< op::push_front >::type const push_front;
    function< op::pop >::type const pop;
    function< op::pop_back >::type const pop_back;
    function< op::pop_front >::type const pop_front;
    function< op::top >::type const top;
    function< op::back >::type const back;
    function< op::front >::type const front;
    function< op::first >::type const first;
    function< op::second >::type const second;
    function< op::matched >::type const matched;
    function< op::length >::type const length;
    function< op::str >::type const str;
    function< op::insert >::type const insert;
    function< op::make_pair >::type const make_pair;
    function< op::unwrap_reference >::type const unwrap_reference;
    template<typename T, typename A> unspecified as(A const &);
    template<typename T, typename A> unspecified static_cast_(A const &);
    template<typename T, typename A> unspecified dynamic_cast_(A const &);
    template<typename T, typename A> unspecified const_cast_(A const &);
    template<typename T> value< T > const val(T const &);
    template<typename T> reference< T > const ref(T &);
    template<typename T> reference< T const  > const cref(T const &);
    template<typename T> unspecified check(T const &);
    template<typename... ArgBindings> unspecified let(ArgBindings const &...);
    template<typename T, typename... Args> unspecified construct(Args const &...);
    namespace op {
      template<typename T> struct as;
      struct at;
      struct back;
      template<typename T> struct const_cast_;
      template<typename T> struct construct;
      template<typename T> struct dynamic_cast_;
      struct first;
      struct front;
      struct insert;
      struct length;
      struct make_pair;
      struct matched;
      struct pop;
      struct pop_back;
      struct pop_front;
      struct push;
      struct push_back;
      struct push_front;
      struct second;
      template<typename T> struct static_cast_;
      struct str;
      template<typename Except> struct throw_;
      struct top;
      struct unwrap_reference;
    }
  }
}

<boost/xpressive/regex_algorithms.hpp> ヘッダ

regex_matchregex_search および regex_replace アルゴリズムがある。

namespace boost {
  namespace xpressive {
    template<typename BidiIter>
      bool regex_match(BidiIter, BidiIter, match_results< BidiIter > &,
                        basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename BidiIter>
      bool regex_match(BidiIter, BidiIter, basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename Char> bool regex_match(Char *, match_results< Char * > &,
                        basic_regex< Char * > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename BidiRange, typename BidiIter>
      bool regex_match(BidiRange &, match_results< BidiIter > &,
                        basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename BidiRange, typename BidiIter>
      bool regex_match(BidiRange const &, match_results< BidiIter > &,
                        basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename Char>
      bool regex_match(Char *, basic_regex< Char * > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename BidiRange, typename BidiIter>
      bool regex_match(BidiRange &, basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename BidiRange, typename BidiIter>
      bool regex_match(BidiRange const &, basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename BidiIter>
      bool regex_search(BidiIter, BidiIter, match_results< BidiIter > &,
                        basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename BidiIter>
      bool regex_search(BidiIter, BidiIter, basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename Char>
      bool regex_search(Char *, match_results< Char * > &,
                        basic_regex< Char * > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename BidiRange, typename BidiIter>
      bool regex_search(BidiRange &, match_results< BidiIter > &,
                        basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename BidiRange, typename BidiIter>
      bool regex_search(BidiRange const &, match_results< BidiIter > &,
                        basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename Char>
      bool regex_search(Char *, basic_regex< Char * > const &,
                        regex_constants::match_flag_type = regex_constants::match_default);
    template<typename BidiRange, typename BidiIter>
      bool regex_search(BidiRange &, basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename BidiRange, typename BidiIter>
      bool regex_search(BidiRange const &, basic_regex< BidiIter > const &,
                        regex_constants::match_flag_type = regex_constants::match_default,
                        unspecified = 0);
    template<typename OutIter, typename BidiIter, typename Formatter>
      OutIter regex_replace(OutIter, BidiIter, BidiIter,
                            basic_regex< BidiIter > const &,
                            Formatter const &,
                            regex_constants::match_flag_type = regex_constants::match_default,
                            unspecified = 0);
    template<typename OutIter, typename BidiIter>
      OutIter regex_replace(OutIter, BidiIter, BidiIter,
                            basic_regex< BidiIter > const &,
                            typename iterator_value< BidiIter >::type const *,
                            regex_constants::match_flag_type = regex_constants::match_default);
    template<typename BidiContainer, typename BidiIter, typename Formatter>
      BidiContainer
      regex_replace(BidiContainer &, basic_regex< BidiIter > const &,
                    Formatter const &,
                    regex_constants::match_flag_type = regex_constants::match_default,
                    unspecified = 0);
    template<typename BidiContainer, typename BidiIter, typename Formatter>
      BidiContainer
      regex_replace(BidiContainer const &, basic_regex< BidiIter > const &,
                    Formatter const &,
                    regex_constants::match_flag_type = regex_constants::match_default,
                    unspecified = 0);
    template<typename Char, typename Formatter>
      std::basic_string< typename remove_const< Char >::type >
      regex_replace(Char *, basic_regex< Char * > const &, Formatter const &,
                    regex_constants::match_flag_type = regex_constants::match_default,
                    unspecified = 0);
    template<typename BidiContainer, typename BidiIter>
      BidiContainer
      regex_replace(BidiContainer &, basic_regex< BidiIter > const &,
                    typename iterator_value< BidiIter >::type const *,
                    regex_constants::match_flag_type = regex_constants::match_default,
                    unspecified = 0);
    template<typename BidiContainer, typename BidiIter>
      BidiContainer
      regex_replace(BidiContainer const &, basic_regex< BidiIter > const &,
                    typename iterator_value< BidiIter >::type const *,
                    regex_constants::match_flag_type = regex_constants::match_default,
                    unspecified = 0);
    template<typename Char>
      std::basic_string< typename remove_const< Char >::type >
      regex_replace(Char *, basic_regex< Char * > const &,
                    typename add_const< Char >::type *,
                    regex_constants::match_flag_type = regex_constants::match_default);
  }
}

<boost/xpressive/regex_compiler.hpp> ヘッダ

正規表現を文字列から構築するファクトリである regex_compiler の定義がある。

namespace boost {
  namespace xpressive {
    template<typename BidiIter, typename RegexTraits, typename CompilerTraits>
      struct regex_compiler;
  }
}

<boost/xpressive/regex_constants.hpp> ヘッダ

syntax_option_typematch_flag_type および error_type 列挙の定義がある。

namespace boost {
  namespace xpressive {
    namespace regex_constants {
      enum syntax_option_type;
      enum match_flag_type;
      enum error_type;
    }
  }
}

<boost/xpressive/regex_error.hpp> ヘッダ

regex_error 例外クラスの定義がある。

BOOST_XPR_ENSURE_(pred, code, msg)
namespace boost {
  namespace xpressive {
    struct regex_error;
  }
}

<boost/xpressive/regex_iterator.hpp> ヘッダ

シーケンス内のすべてのマッチを辿る STL 互換のイテレータである regex_iterator 型の定義がある。

namespace boost {
  namespace xpressive {
    template<typename BidiIter> struct regex_iterator;
  }
}

<boost/xpressive/regex_primitives.hpp> ヘッダ

静的正規表現を記述するための構文要素がある。

namespace boost {
  namespace xpressive {
    struct mark_tag;

    unsigned int const inf;    // 部分式の無限回の繰り返しに使う。
    unspecified nil;    // 空のマッチ。
    unspecified alnum;    // 英数字にマッチ。
    unspecified alpha;    // アルファベットにマッチ。
    unspecified blank;    // 空白(水平空白)文字にマッチ。
    unspecified cntrl;    // 制御文字にマッチ。
    unspecified digit;    // 数字にマッチ。
    unspecified graph;    // グラフィカルな文字にマッチ。
    unspecified lower;    // 小文字にマッチ。
    unspecified print;    // 印字可能な文字にマッチ。
    unspecified punct;    // 区切り文字にマッチ。
    unspecified space;    // 空白類文字にマッチ。
    unspecified upper;    // 大文字にマッチ。
    unspecified xdigit;    // 16 進数字にマッチ。
    unspecified bos;    // シーケンスの先頭を表す表明。
    unspecified eos;    // シーケンスの終端を表す表明。
    unspecified bol;    // 行頭を表す表明。
    unspecified eol;    // 行末を表す表明。
    unspecified bow;    // 語頭を表す表明。
    unspecified eow;    // 語末を表す表明。
    unspecified _b;    // 単語境界を表す表明。
    unspecified _w;    // 単語構成文字にマッチ。
    unspecified _d;    // 数字にマッチ。
    unspecified _s;    // 空白類文字にマッチ。
    proto::terminal< char >::type const _n;    // リテラルの改行 '\n' にマッチ。
    unspecified _ln;    // 論理改行シーケンスにマッチ。
    unspecified _;    // あらゆる文字にマッチ。
    unspecified self;    // 現在の正規表現オブジェクトへの参照。
    unspecified set;    // 文字セットを作成するのに使用。
    mark_tag const s0;    // Perl の $& 部分マッチプレースホルダ。
    mark_tag const s1;    // Perl の $1 部分マッチプレースホルダ。
    mark_tag const s2;
    mark_tag const s3;
    mark_tag const s4;
    mark_tag const s5;
    mark_tag const s6;
    mark_tag const s7;
    mark_tag const s8;
    mark_tag const s9;
    unspecified a1;
    unspecified a2;
    unspecified a3;
    unspecified a4;
    unspecified a5;
    unspecified a6;
    unspecified a7;
    unspecified a8;
    unspecified a9;
    template<typename Expr> unspecified icase(Expr const &);
    template<typename Literal> unspecified as_xpr(Literal const &);
    template<typename BidiIter>
      proto::terminal< reference_wrapper< basic_regex< BidiIter > const  > >::type const
      by_ref(basic_regex< BidiIter > const &);
    template<typename Char> unspecified range(Char, Char);
    template<typename Expr>
      proto::result_of::make_expr< proto::tag::logical_not, proto::default_domain, Expr const & >::type const
      optional(Expr const &);
    template<unsigned int Min, unsigned int Max, typename Expr>
      unspecified repeat(Expr const &);
    template<unsigned int Count, typename Expr>;
      unspecified repeat(Expr const &);
    template<typename Expr> unspecified keep(Expr const &);
    template<typename Expr> unspecified before(Expr const &);
    template<typename Expr> unspecified after(Expr const &);
    template<typename Locale> unspecified imbue(Locale const &);
    template<typename Skip> unspecified skip(Skip const &);
  }
}

<boost/xpressive/regex_token_iterator.hpp> ヘッダ

regex_token_iterator の定義と、正規表現を使って文字列をトークンに分割する STL 互換のイテレータがある。

namespace boost {
  namespace xpressive {
    template<typename BidiIter> struct regex_token_iterator;
  }
}

<boost/xpressive/regex_traits.hpp> ヘッダ

BOOST_XPRESSIVE_USE_C_TRAITS マクロにしたがって C 正規表現特性か C++ 正規表現特性のヘッダファイルをインクルードする。

namespace boost {
  namespace xpressive {
    struct regex_traits_version_1_tag;
    struct regex_traits_version_2_tag;
  }
}

<boost/xpressive/sub_match.hpp> ヘッダ

sub_match<> クラステンプレートと、関連するヘルパ関数の定義がある。

namespace boost {
  namespace xpressive {
    template<typename BidiIter> struct sub_match;
    template<typename BidiIter> BidiIter range_begin(sub_match< BidiIter > &);
    template<typename BidiIter>
      BidiIter range_begin(sub_match< BidiIter > const &);
    template<typename BidiIter> BidiIter range_end(sub_match< BidiIter > &);
    template<typename BidiIter>
      BidiIter range_end(sub_match< BidiIter > const &);
    template<typename BidiIter, typename Char, typename Traits>
      std::basic_ostream< Char, Traits > &
      operator<<(std::basic_ostream< Char, Traits > &,
                 sub_match< BidiIter > const &);
    template<typename BidiIter>
      bool operator==(sub_match< BidiIter > const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator!=(sub_match< BidiIter > const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator<(sub_match< BidiIter > const & lhs,
                     sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator<=(sub_match< BidiIter > const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator>=(sub_match< BidiIter > const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator>(sub_match< BidiIter > const & lhs,
                     sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator==(typename iterator_value< BidiIter >::type const * lhs,
                   sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator!=(typename iterator_value< BidiIter >::type const * lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator<(typename iterator_value< BidiIter >::type const * lhs,
                     sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator>(typename iterator_value< BidiIter >::type const * lhs,
                     sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator>=(typename iterator_value< BidiIter >::type const * lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator<=(typename iterator_value< BidiIter >::type const * lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator==(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const * rhs);
    template<typename BidiIter>
      bool operator!=(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const * rhs);
    template<typename BidiIter>
      bool operator<(sub_match< BidiIter > const & lhs,
                     typename iterator_value< BidiIter >::type const * rhs);
    template<typename BidiIter>
      bool operator>(sub_match< BidiIter > const & lhs,
                     typename iterator_value< BidiIter >::type const * rhs);
    template<typename BidiIter>
      bool operator>=(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const * rhs);
    template<typename BidiIter>
      bool operator<=(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const * rhs);
    template<typename BidiIter>
      bool operator==(typename iterator_value< BidiIter >::type const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator!=(typename iterator_value< BidiIter >::type const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator<(typename iterator_value< BidiIter >::type const & lhs,
                     sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator>(typename iterator_value< BidiIter >::type const & lhs,
                     sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator>=(typename iterator_value< BidiIter >::type const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator<=(typename iterator_value< BidiIter >::type const & lhs,
                      sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      bool operator==(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const & rhs);
    template<typename BidiIter>
      bool operator!=(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const & rhs);
    template<typename BidiIter>
      bool operator<(sub_match< BidiIter > const & lhs,
                     typename iterator_value< BidiIter >::type const & rhs);
    template<typename BidiIter>
      bool operator>(sub_match< BidiIter > const & lhs,
                     typename iterator_value< BidiIter >::type const & rhs);
    template<typename BidiIter>
      bool operator>=(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const & rhs);
    template<typename BidiIter>
      bool operator<=(sub_match< BidiIter > const & lhs,
                      typename iterator_value< BidiIter >::type const & rhs);
    template<typename BidiIter>
      sub_match< BidiIter >::string_type
      operator+(sub_match< BidiIter > const & lhs,
                sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      sub_match< BidiIter >::string_type
      operator+(sub_match< BidiIter > const & lhs,
                typename iterator_value< BidiIter >::type const & rhs);
    template<typename BidiIter>
      sub_match< BidiIter >::string_type
      operator+(typename iterator_value< BidiIter >::type const & lhs,
                sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      sub_match< BidiIter >::string_type
      operator+(sub_match< BidiIter > const & lhs,
                typename iterator_value< BidiIter >::type const * rhs);
    template<typename BidiIter>
      sub_match< BidiIter >::string_type
      operator+(typename iterator_value< BidiIter >::type const * lhs,
                sub_match< BidiIter > const & rhs);
    template<typename BidiIter>
      sub_match< BidiIter >::string_type
      operator+(sub_match< BidiIter > const & lhs,
                typename sub_match< BidiIter >::string_type const & rhs);
    template<typename BidiIter>
      sub_match< BidiIter >::string_type
      operator+(typename sub_match< BidiIter >::string_type const & lhs,
                sub_match< BidiIter > const & rhs);
  }
}

<boost/xpressive/traits/c_regex_traits.hpp> ヘッダ

静的・動的正規表現の振る舞いをカスタマイズする C ロカール関数のラッパである c_regex_traits テンプレートの定義がある。

<boost/xpressive/traits/cpp_regex_traits.hpp> ヘッダ

静的・動的正規表現の振る舞いをカスタマイズする std::locale のラッパである cpp_regex_traits テンプレートの定義がある。

<boost/xpressive/traits/null_regex_traits.hpp> ヘッダ

非文字データを検索する静的・動的正規表現で使用する控えの正規表現特性の実装である、null_regex_traits テンプレートの定義がある。

<boost/xpressive/xpressive.hpp> ヘッダ

静的・動的両方の正規表現サポートを含む xpressive のすべてをインクルードする。

<boost/xpressive/xpressive_dynamic.hpp> ヘッダ

動的正規表現の記述と使用に必要なすべてをインクルードする。

<boost/xpressive/xpressive_fwd.hpp> ヘッダ

xpressive のすべての公開データ型の前方宣言。

BOOST_PROTO_FUSION_V2
BOOST_XPRESSIVE_HAS_MS_STACK_GUARD
namespace boost {
  namespace xpressive {
    template<typename BidiIter> struct basic_regex;
    template<typename Char> struct c_regex_traits;
    template<typename RegexTraits> struct compiler_traits;
    template<typename Char> struct cpp_regex_traits;
    template<typename Traits> struct has_fold_case;
    template<typename Elem> struct null_regex_traits;
    template<typename BidiIter> struct regex_token_iterator;
    template<typename Char, typename Impl> struct regex_traits;

    typedef void const * regex_id_type;
    typedef basic_regex< std::string::const_iterator > sregex;
    typedef basic_regex< char const * > cregex;
    typedef basic_regex< std::wstring::const_iterator > wsregex;
    typedef basic_regex< wchar_t const * > wcregex;
    typedef sub_match< std::string::const_iterator > ssub_match;
    typedef sub_match< char const * > csub_match;
    typedef sub_match< std::wstring::const_iterator > wssub_match;
    typedef sub_match< wchar_t const * > wcsub_match;
    typedef regex_compiler< std::string::const_iterator > sregex_compiler;
    typedef regex_compiler< char const * > cregex_compiler;
    typedef regex_compiler< std::wstring::const_iterator > wsregex_compiler;
    typedef regex_compiler< wchar_t const * > wcregex_compiler;
    typedef regex_iterator< std::string::const_iterator > sregex_iterator;
    typedef regex_iterator< char const * > cregex_iterator;
    typedef regex_iterator< std::wstring::const_iterator > wsregex_iterator;
    typedef regex_iterator< wchar_t const * > wcregex_iterator;
    typedef regex_token_iterator< std::string::const_iterator > sregex_token_iterator;
    typedef regex_token_iterator< char const * > cregex_token_iterator;
    typedef regex_token_iterator< std::wstring::const_iterator > wsregex_token_iterator;
    typedef regex_token_iterator< wchar_t const * > wcregex_token_iterator;
    typedef match_results< std::string::const_iterator > smatch;
    typedef match_results< char const * > cmatch;
    typedef match_results< std::wstring::const_iterator > wsmatch;
    typedef match_results< wchar_t const * > wcmatch;
    typedef regex_id_filter_predicate< std::string::const_iterator > sregex_id_filter_predicate;
    typedef regex_id_filter_predicate< char const * > cregex_id_filter_predicate;
    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;
    namespace op {
      template<typename T> struct as;
      template<typename T> struct const_cast_;
      template<typename T> struct construct;
      template<typename T> struct dynamic_cast_;
      template<typename T> struct static_cast_;
      template<typename Except> struct throw_;
    }
  }

<boost/xpressive/xpressive_static.hpp> ヘッダ

静的正規表現の記述と使用に必要なすべてをインクルードする。

<boost/xpressive/xpressive_typeof.hpp> ヘッダ

xpressive を Boost.Typeof ライブラリとともに使用するための型登録。