value 構造体テンプレート
-
template<typename T>
struct value value<>
は、xpressive の意味アクションで使用できる値の遅延ラッパである。- テンプレートパラメータ
T -- 格納する値の型。
概要
// ヘッダ:<boost/xpressive/regex_actions.hpp
> template<typename T> structvalue
: public proto::extends< proto::terminal< T >::type, value< T > > { // 構築、コピー、解体value
(); explicitvalue
(T const &); // 公開メンバ関数 T &get
(); T const &get
() const; };
説明
以下は value<>
を使用すると便利な例である。
sregex good_voodoo(boost::shared_ptr<int> pi)
{
using namespace boost::xpressive;
// val() を使用して shared_ptr を値で保持する:
sregex rex = +( _d [ ++*val(pi) ] >> '!' );
// OK 、rex は整数に対する参照カウントを保持する。
return rex;
}
上のコードにおいて、xpressive::val
は value<>
オブジェクトを返す関数である。val
を使用しないと ++*pi の演算は正規表現がマッチしたときに遅延評価されるのではなく、一度だけ積極評価される。
value 構築、コピー、解体の公開演算
-
value()
デフォルト構築した
T
を格納する。
value の公開メンバ関数
-
T &get()
利便性のためのメンバ関数多重定義。上記関数と受け取る引数が異なるのみ。
-
T const &get() const
格納した値にアクセスする。