Skip to content

Latest commit

 

History

History
63 lines (35 loc) · 2.44 KB

mark_tag.rst

File metadata and controls

63 lines (35 loc) · 2.44 KB

mark_tag 構造体

概要

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

struct :cpp~::boost::xpressive::mark_tag {

// 構築、コピー、解体 <mark_tag.construct-copy-destruct> :cpp~mark_tag::mark_tag(int);

// 非公開静的メンバ関数 <mark_tag.private-static-functions> static {unspecified} :cppmake_tag(int);

};

説明

:cppmark_tag は部分マッチのグローバルなプレースホルダ :cpp!s0 、:cpp!s1 、…の型である。:cppmark_tag を使用すると、より意味のある名前で部分マッチプレースホルダを作成できる。動的正規表現における「名前付き捕捉」機能とおおよそ等価である。

名前付き部分マッチプレースホルダは、一意な整数で初期化して作成する。この整数はプレースホルダを使用する正規表現内で一意でなければならない。静的正規表現内でこれに部分式を代入して部分マッチを作成するか、すでに作成した部分マッチを後方参照できる。 :

mark_tag number(1); // number は s1 と等価
// 数字、続いて空白、再び同じ数字にマッチ
sregex rx = (number = +_d) >> ' ' >> number;

:cpp!regex_match() か :cpp!regex_search() が成功した後は、部分マッチのプレースホルダを :cppmatch_results\<> オブジェクトの添字にして、対応する部分マッチを得る。

:cpp!mark_tag 構築、コピー、解体の公開演算

:cpp!mark_tag 非公開静的メンバ関数