Skip to content

Latest commit

 

History

History
83 lines (48 loc) · 2.27 KB

local.rst

File metadata and controls

83 lines (48 loc) · 2.27 KB

local 構造体テンプレート

概要

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

template<typename T> struct :cpplocal : public proto::terminal::type< reference_wrapper< T > > { // 構築、コピー、解体 <local.construct-copy-destruct> :cpp~local::local(); explicit :cpp~local::local(T const &);

// 公開メンバ関数 <local.public-member-functions> T & :cppget(); T const & :cppget() const;

};

説明

以下は意味アクション内における :cpp!local\<> の使用例である。 :

using namespace boost::xpressive;
local<int> i(0);
std::string str("1!2!3?");
// 感嘆符付きの数字を数える。
// 疑問符付きのものは数えない。
sregex rex = +( _d [ ++i ] >> '!' );
regex_search(str, rex);
assert( i.get() == 2 );

Note

local という名前が示すとおり、:cpp!local\<> オブジェクトとそれらを参照する正規表現がローカルスコープを離脱することはない。:cpp!local オブジェクトが格納する値は :cpp!local\<> の寿命が終わった時点で破壊され、:cpp!local\<> を保持する正規表現オブジェクトは懸垂参照とともに取り残される。

local 構築、コピー、解体の公開演算

公開メンバ関数