diff --git a/include/llvm/ADT/STLExtras.h b/include/llvm/ADT/STLExtras.h index 28f75949373..06a1756e26f 100644 --- a/include/llvm/ADT/STLExtras.h +++ b/include/llvm/ADT/STLExtras.h @@ -117,7 +117,9 @@ public: iterator_category; typedef typename std::iterator_traits::difference_type difference_type; - typedef typename UnaryFunc::result_type value_type; + typedef typename std::result_of< + UnaryFunc(decltype(*std::declval()))> + ::type value_type; typedef void pointer; //typedef typename UnaryFunc::result_type *pointer;