wrap_base const* get_back_reference_aux2(T const& x, mpl::true_) { return get_back_reference_aux1(get_pointer(x)); }
wrap_base const* get_back_reference_aux2(T const& x, mpl::false_) { return get_back_reference_aux1(&x); }
wrap_base const* get_back_reference_aux2(T const& x, std::false_type) { return get_back_reference_aux1(&x); }