...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::op::insert
// In header: <boost/xpressive/regex_actions.hpp> struct insert { // member classes/structs/unions template<typename Sig, typename EnableIf = void> struct result { }; template<typename This, typename Cont, typename It> struct result<This(Cont, It, It), void> { // types typedef void type; }; template<typename This, typename Cont, typename It, typename Size, typename Value> struct result<This(Cont, It, Size, Value), typename disable_if< is_integral< UNCVREF(It)> >::type> { // types typedef void type; }; template<typename This, typename Cont, typename It, typename Value> struct result<This(Cont, It, Value), typename disable_if< mpl::or_< is_integral< UNCVREF(It)>, is_same< UNCVREF(It), UNCVREF(Value)> > >::type> { }; template<typename This, typename Cont, typename Size, typename A0, typename A1> struct result<This(Cont, Size, A0, A1), typename enable_if< is_integral< UNCVREF(Size)> >::type> { // public member functions typedef UNREF(Cont); }; template<typename This, typename Cont, typename Size, typename T> struct result<This(Cont, Size, T), typename enable_if< is_integral< UNCVREF(Size)> >::type> { // public member functions typedef UNREF(Cont); }; template<typename This, typename Cont, typename Value> struct result<This(Cont, Value), void> { // types typedef char yes_type; typedef char(& no_type; typedef mpl::if_c< is_iterator, typename cont_type::iterator, std::pair< typename cont_type::iterator, bool > >::type type; // public member functions typedef UNREF(Cont); typedef UNREF(Value); // public static functions static yes_type check_insert_return(typename cont_type::iterator); static no_type check_insert_return(std::pair< typename cont_type::iterator, bool >); // public data members static cont_type & scont_; static value_type & svalue_; static bool const is_iterator; }; // public data members result< insert(Cont &, A0 const &)>::type operator(); result< insert(Cont &, A0 const &, A1 const &)>::type operator(); result< insert(Cont &, A0 const &, A1 const &, A2 const &)>::type operator(); };
insert
public
public data membersresult< insert(Cont &, A0 const &)>::type operator();
operator()
result< insert(Cont &, A0 const &, A1 const &)>::type operator();
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
result< insert(Cont &, A0 const &, A1 const &, A2 const &)>::type operator();
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.