...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
struct insert { 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) ; BOOST_STATIC_CONSTANT(bool, is_iterator = (sizeof(yes_type)==sizeof(check_insert_return(scont_.insert(svalue_))))) ; // 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 >) ; static cont_type & scont_; static value_type & svalue_; }; };