diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2016-01-13 21:54:34 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2016-01-13 21:54:34 +0000 |
commit | 76b4afc04051298081c2f46056138b4013c2f49d (patch) | |
tree | d527130e26d84a126910890f17fb96cf750046ee /libcxx/include/algorithm | |
parent | 183ebbe0eeab823594685eb57ebbbd5ee32eb2e1 (diff) | |
download | bcm5719-llvm-76b4afc04051298081c2f46056138b4013c2f49d.tar.gz bcm5719-llvm-76b4afc04051298081c2f46056138b4013c2f49d.zip |
Fix PR#25973 : 'basic_string::assign(InputIt, InputIt) doesn't provide the strong exception safety guarantee'. This turned out to be a pervasive problem in <string>, which required a fair amount of rework. Add in an optimization for when iterators provide noexcept increment/comparison/assignment/dereference (which covers many of the iterators in libc++). Reviewed as http://reviews.llvm.org/D15862
llvm-svn: 257682
Diffstat (limited to 'libcxx/include/algorithm')
-rw-r--r-- | libcxx/include/algorithm | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm index 9c051198930..71e5df37dfe 100644 --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -1687,25 +1687,6 @@ search_n(_ForwardIterator __first, _ForwardIterator __last, _Size __count, const } // copy - -template <class _Iter> -struct __libcpp_is_trivial_iterator -{ - static const bool value = is_pointer<_Iter>::value; -}; - -template <class _Iter> -struct __libcpp_is_trivial_iterator<move_iterator<_Iter> > -{ - static const bool value = is_pointer<_Iter>::value; -}; - -template <class _Iter> -struct __libcpp_is_trivial_iterator<__wrap_iter<_Iter> > -{ - static const bool value = is_pointer<_Iter>::value; -}; - template <class _Iter> inline _LIBCPP_INLINE_VISIBILITY _Iter |