------- Comment #6 from redi at gcc dot gnu dot org 2010-04-20 16:59 ------- one problem is that it's not trivial to determine if a type "qualifies as an input iterator" because a non-iterator type could provide private members which perform some of the operations supported by an iterator (e.g. operator++) and attempting to test for those members will give an access violation
there's some related discussion starting at Bug 40497 comment 23 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43813