The following code of mine should detect whether T has begin and end methods:
template
struct is_contai
Stephan T. Lavavej has this to say:
Please note that it is technically forbidden to take the address of a Standard Library member function. (They can be overloaded, making
&foo::barambiguous, and they can have additional default arguments, defeating attempts to disambiguate viastatic_cast.)
So I guess I'm going to use the simpler version that only checks for the nested const_iterator type.