id summary reporter owner description type status milestone component version severity resolution keywords cc 13346 SFINAE-friendly range_value marc.glisse@… Neil Groves "This code compiles: {{{ #include #include #include template void f(std::pair){} template auto f(T) -> typename std::iterator_traits::type>::value_type {} int main(){ std::pair p; f(p); } }}} However, if I change the return type to the more readable `typename boost::range_value::type`, it now fails to compile because the broken typedef in iterator_value is not in the immediate context. The standard noticed that this was useful and made iterator_traits SFINAE-friendly, it would be nice if boost could do the same for the various range meta-functions." Feature Requests new To Be Determined range Boost 1.62.0 Problem sfinae