##1.type_traits ###1.1判断类型中是否有iterator_category(stl_iterator_base_types.h) _GLIBCXX_HAS_NESTED_TYPE(iterator_category) //宏定义,生成对应的类 template<typename _Iterator, //实现见type_traits bool = __has_iterator_category<_Iterator>::value> struct __iterator_traits { }; 这里使用了template编程的SFINAE技术来确定类型中是否存在对应的member type.
转载于:https://my.oschina.net/u/263978/blog/233113