]> granicus.if.org Git - llvm/commitdiff
[ADT] Attempt to fix MSVC 2015 ICE via judicious addition of std::decay to make_point...
authorJustin Lebar <jlebar@google.com>
Mon, 10 Oct 2016 17:18:45 +0000 (17:18 +0000)
committerJustin Lebar <jlebar@google.com>
Mon, 10 Oct 2016 17:18:45 +0000 (17:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283783 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/iterator.h

index eced5eab5233f811ac9acffaed51ec3d19c3c21c..91c1fcb1001387e8bfba537cc3553c94a0030d98 100644 (file)
@@ -257,8 +257,10 @@ struct pointee_iterator
 };
 
 template <typename WrappedIteratorT>
-pointee_iterator<WrappedIteratorT> make_pointee_iterator(WrappedIteratorT &&I) {
-  return pointee_iterator<WrappedIteratorT>(std::forward<WrappedIteratorT>(I));
+pointee_iterator<typename std::decay<WrappedIteratorT>::type>
+make_pointee_iterator(WrappedIteratorT &&I) {
+  return pointee_iterator<typename std::decay<WrappedIteratorT>::type>(
+      std::forward<WrappedIteratorT>(I));
 }
 
 template <typename WrappedIteratorT,
@@ -279,8 +281,10 @@ public:
 };
 
 template <typename WrappedIteratorT>
-pointer_iterator<WrappedIteratorT> make_pointer_iterator(WrappedIteratorT &&I) {
-  return pointer_iterator<WrappedIteratorT>(std::forward<WrappedIteratorT>(I));
+pointer_iterator<typename std::decay<WrappedIteratorT>::type>
+make_pointer_iterator(WrappedIteratorT &&I) {
+  return pointer_iterator<typename std::decay<WrappedIteratorT>::type>(
+      std::forward<WrappedIteratorT>(I));
 }
 
 } // namespace llvm