Struct template value
boost::xpressive::value — value<> is a lazy wrapper for a value that can be used in xpressive semantic actions.
Synopsis
template<typename T>
struct value :
public proto::extends< proto::terminal< T >::type, value< T > >
{
value();
explicit value(T const &);
T & get();
T const & get() const;
};
Description
Ниже приведен пример, который показывает, где полезно value<>.
sregex good_voodoo(boost::shared_ptr<int> pi)
{
using namespace boost::xpressive;
sregex rex = +( _d [ ++*val(pi) ] >> '!' );
return rex;
}
В приведенном выше коде xpressive::val() является функцией, которая возвращает объект value<>.Если бы здесь не использовался val(), операция ++*pi была бы оценена охотно один раз, а не лениво, когда происходит соответствие регекса.
Template Parameters
Имя T<3 Тип значения для хранения.
value
public
construct/copy/destruct
значение();
Сохранить построенный по умолчанию T.
explicit t;;;;;;;