...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::xpressive::local — local<>
is a lazy wrapper for a reference to a value that is stored within the local itself. It is for use within xpressive semantic actions.
// In header: <boost/xpressive/xpressive_fwd.hpp> template<typename T> struct local : public proto::terminal::type< reference_wrapper< T > > { // construct/copy/destruct local(); explicit local(T const &); // public member functions T & get(); T const & get() const; };
Below is an example of how to use local<>
in semantic actions.
using namespace boost::xpressive; local<int> i(0); std::string str("1!2!3?"); // count the exciting digits, but not the // questionable ones. sregex rex = +( _d [ ++i ] >> '!' ); regex_search(str, rex); assert( i.get() == 2 );
Note | |
---|---|
As the name "local" suggests, |