add iterator_traits: SFINAE-friendly version