
11 Oct
2011
11 Oct
'11
6:48 p.m.
On Tue, Oct 11, 2011 at 8:40 PM, Stewart, Robert <Robert.Stewart@sig.com> wrote:
template <class T, class U> typename T::value_type::second_type* find_ptr(T& c, U v);
template <class T, class U> typename iterator_traits<typename T::iterator>::pointer find_ptr(T& c, U v);
What is the recommended way to disable the second overload? I didn't find a is_pair type_trait or disable_if_type.
pair doesn't have a nested type "iterator", so SFINAE would disable the second.
T would be for example map or vector. If it's vector, the first overload is disabled. But if it's map, both overloads are available and the second one needs to be disabled 'manually'. Olaf