https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86015
--- Comment #9 from Josh Marshall <joshua.r.marshall.1991 at gmail dot com> --- Confirmed in 8.1.1 Also, looking over the following documents: https://en.cppreference.com/w/cpp/types/ptrdiff_t https://en.cppreference.com/w/cpp/iterator/iterator http://en.cppreference.com/w/cpp/iterator/advance http://en.cppreference.com/w/cpp/iterator/distance https://en.cppreference.com/w/cpp/concept/Iterator https://en.cppreference.com/w/cpp/iterator/iterator_traits All of these do not require difference_type (typename _Distance in glibc) to be convertible to an integer, and imply implicit conversion from an integer. From this reading, I need to change this from an enhancement to a bug. I also need to put in a request for a clarification to the standard on this, because it wasn't very apparent. Unfortunately, this involves the bigger change to glibc. Functions like __lg() will have to be re-written.