> Most all the containers have begin iterators (except the Container Adaptors),
> so won't that nearly always be a valid construct?
Yes, is_sequence<T>::value would (and should) be true for standard sequence containers, c-style arrays. It would be false for types that can't be iterated over starting with std::begin
> Or is_same just can't be used at all with template parameters