diff options
| author | Eric Fiselier <eric@efcs.ca> | 2016-04-22 00:49:12 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2016-04-22 00:49:12 +0000 |
| commit | 906c50859b0d75725850b770f87b71b9d541ecd4 (patch) | |
| tree | 37a61766d513d4145a4a1e229ab8acf2759f5c5c /libcxx/include/iterator | |
| parent | b7f045fc7d97c53ee1b1e9fc78fe6e3eac8fc05f (diff) | |
| download | bcm5719-llvm-906c50859b0d75725850b770f87b71b9d541ecd4.tar.gz bcm5719-llvm-906c50859b0d75725850b770f87b71b9d541ecd4.zip | |
Fix LWG issue #2106: move_iterators returning prvalues
llvm-svn: 267091
Diffstat (limited to 'libcxx/include/iterator')
| -rw-r--r-- | libcxx/include/iterator | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libcxx/include/iterator b/libcxx/include/iterator index e6f47230f9a..0e60aa9b38b 100644 --- a/libcxx/include/iterator +++ b/libcxx/include/iterator @@ -951,7 +951,12 @@ public: typedef typename iterator_traits<iterator_type>::difference_type difference_type; typedef iterator_type pointer; #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - typedef value_type&& reference; + typedef typename iterator_traits<iterator_type>::reference __reference; + typedef typename conditional< + is_reference<__reference>::value, + typename remove_reference<__reference>::type&&, + __reference + >::type reference; #else typedef typename iterator_traits<iterator_type>::reference reference; #endif |

