diff options
| author | Howard Hinnant <hhinnant@apple.com> | 2012-08-05 21:43:11 +0000 |
|---|---|---|
| committer | Howard Hinnant <hhinnant@apple.com> | 2012-08-05 21:43:11 +0000 |
| commit | 1237dccaea542da96ff64d4c98cd2a8db4661954 (patch) | |
| tree | 24dd3fdf15b7b1d42cd3b4f2f03287febbb75c3b /libcxx/include/__bit_reference | |
| parent | 73984be05773e353fb0a87b63c1fc4a8b0f23a06 (diff) | |
| download | bcm5719-llvm-1237dccaea542da96ff64d4c98cd2a8db4661954.tar.gz bcm5719-llvm-1237dccaea542da96ff64d4c98cd2a8db4661954.zip | |
std::equal operating on non-const __bit_iterators was not working. This fixes it.
llvm-svn: 161309
Diffstat (limited to 'libcxx/include/__bit_reference')
| -rw-r--r-- | libcxx/include/__bit_reference | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/libcxx/include/__bit_reference b/libcxx/include/__bit_reference index b91532db2ec..8180295bde3 100644 --- a/libcxx/include/__bit_reference +++ b/libcxx/include/__bit_reference @@ -927,12 +927,12 @@ rotate(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __middle, // equal -template <class _Cp> +template <class _Cp, bool _IC1, bool _IC2> bool -__equal_unaligned(__bit_iterator<_Cp, true> __first1, __bit_iterator<_Cp, true> __last1, - __bit_iterator<_Cp, true> __first2) +__equal_unaligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, + __bit_iterator<_Cp, _IC2> __first2) { - typedef __bit_iterator<_Cp, true> _It; + typedef __bit_iterator<_Cp, _IC1> _It; typedef typename _It::difference_type difference_type; typedef typename _It::__storage_type __storage_type; static const unsigned __bits_per_word = _It::__bits_per_word; @@ -1009,12 +1009,12 @@ __equal_unaligned(__bit_iterator<_Cp, true> __first1, __bit_iterator<_Cp, true> return true; } -template <class _Cp> +template <class _Cp, bool _IC1, bool _IC2> bool -__equal_aligned(__bit_iterator<_Cp, true> __first1, __bit_iterator<_Cp, true> __last1, - __bit_iterator<_Cp, true> __first2) +__equal_aligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, + __bit_iterator<_Cp, _IC2> __first2) { - typedef __bit_iterator<_Cp, true> _It; + typedef __bit_iterator<_Cp, _IC1> _It; typedef typename _It::difference_type difference_type; typedef typename _It::__storage_type __storage_type; static const unsigned __bits_per_word = _It::__bits_per_word; @@ -1234,12 +1234,12 @@ private: template <class _Dp> friend __bit_iterator<_Dp, false> rotate(__bit_iterator<_Dp, false>, __bit_iterator<_Dp, false>, __bit_iterator<_Dp, false>); - template <class _Dp> friend bool __equal_aligned(__bit_iterator<_Dp, true>, - __bit_iterator<_Dp, true>, - __bit_iterator<_Dp, true>); - template <class _Dp> friend bool __equal_unaligned(__bit_iterator<_Dp, true>, - __bit_iterator<_Dp, true>, - __bit_iterator<_Dp, true>); + template <class _Dp, bool _IC1, bool _IC2> friend bool __equal_aligned(__bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC2>); + template <class _Dp, bool _IC1, bool _IC2> friend bool __equal_unaligned(__bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC2>); template <class _Dp, bool _IC1, bool _IC2> friend bool equal(__bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC2>); |

