diff options
| author | Rachel Craik <rcraik@ca.ibm.com> | 2017-07-24 22:17:05 +0000 |
|---|---|---|
| committer | Rachel Craik <rcraik@ca.ibm.com> | 2017-07-24 22:17:05 +0000 |
| commit | 3e2ef40812204da7098c917c37ad4c8306fb65c7 (patch) | |
| tree | 7f1610b1f36a1d5886712ed00fc0cb9381927837 /libcxx/include/iterator | |
| parent | c7d30e9c0a22bcaacff35830923b1fd2ea6465ff (diff) | |
| download | bcm5719-llvm-3e2ef40812204da7098c917c37ad4c8306fb65c7.tar.gz bcm5719-llvm-3e2ef40812204da7098c917c37ad4c8306fb65c7.zip | |
Remove addtional parameters in function std::next() and std::prev()
Creating a function pointer with proper parameters pointing to std::next() or std::prev() should work.
This change moves the invented paramater for enable_if over to the return type to resolve this QoI issue.
Patch by Jason Liu.
Differential Revision: https://reviews.llvm.org/D34649
llvm-svn: 308932
Diffstat (limited to 'libcxx/include/iterator')
| -rw-r--r-- | libcxx/include/iterator | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/libcxx/include/iterator b/libcxx/include/iterator index d163ab1b091..9e1da937d6d 100644 --- a/libcxx/include/iterator +++ b/libcxx/include/iterator @@ -604,21 +604,27 @@ distance(_InputIter __first, _InputIter __last) template <class _InputIter> inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 -_InputIter +typename enable_if +< + __is_input_iterator<_InputIter>::value, + _InputIter +>::type next(_InputIter __x, - typename iterator_traits<_InputIter>::difference_type __n = 1, - typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0) + typename iterator_traits<_InputIter>::difference_type __n = 1) { _VSTD::advance(__x, __n); return __x; } -template <class _BidiretionalIter> +template <class _BidirectionalIter> inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 -_BidiretionalIter -prev(_BidiretionalIter __x, - typename iterator_traits<_BidiretionalIter>::difference_type __n = 1, - typename enable_if<__is_bidirectional_iterator<_BidiretionalIter>::value>::type* = 0) +typename enable_if +< + __is_bidirectional_iterator<_BidirectionalIter>::value, + _BidirectionalIter +>::type +prev(_BidirectionalIter __x, + typename iterator_traits<_BidirectionalIter>::difference_type __n = 1) { _VSTD::advance(__x, -__n); return __x; |

