Struct insert
boost::xpressive::op::insert
Synopsis
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_;
};
};