diff options
Diffstat (limited to 'contrib/libc++/include/vector')
-rw-r--r-- | contrib/libc++/include/vector | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/contrib/libc++/include/vector b/contrib/libc++/include/vector index ee7143555caa..876b7e5676bd 100644 --- a/contrib/libc++/include/vector +++ b/contrib/libc++/include/vector @@ -313,7 +313,7 @@ __vector_base_common<__b>::__throw_out_of_range() const #pragma warning( push ) #pragma warning( disable: 4231 ) #endif // _MSC_VER -extern template class __vector_base_common<true>; +_LIBCPP_EXTERN_TEMPLATE(class __vector_base_common<true>) #ifdef _MSC_VER #pragma warning( pop ) #endif // _MSC_VER @@ -1458,7 +1458,8 @@ vector<_Tp, _Allocator>::__push_back_slow_path(_Up& __x) allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), size(), __a); // __v.push_back(_VSTD::forward<_Up>(__x)); - __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(__v.__end_++), _VSTD::forward<_Up>(__x)); + __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(__v.__end_), _VSTD::forward<_Up>(__x)); + __v.__end_++; __swap_out_circular_buffer(__v); } @@ -1505,7 +1506,8 @@ vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args) allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), size(), __a); // __v.emplace_back(_VSTD::forward<_Args>(__args)...); - __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(__v.__end_++), _VSTD::forward<_Args>(__args)...); + __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(__v.__end_), _VSTD::forward<_Args>(__args)...); + __v.__end_++; __swap_out_circular_buffer(__v); } |