diff options
author | fdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-24 20:59:00 +0000 |
---|---|---|
committer | fdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-24 20:59:00 +0000 |
commit | 5f70fed563a6de012a39846859192ba2e40ba5c8 (patch) | |
tree | 65ff4aace7fa5361717e93817b514d7d6b2a13e3 /libstdc++-v3/include/profile/deque | |
parent | fb8e0457477e6c72ac62ff9916035fda6a3e51a7 (diff) | |
download | gcc-5f70fed563a6de012a39846859192ba2e40ba5c8.tar.gz |
2014-05-24 François Dumont <fdumont@gcc.gnu.org>
* include/profile/array: Clean useless white chars.
* include/profile/base.h: Likewise.
* include/profile/iterator_tracker.h: Likewise.
* include/profile/bitset: Code cleanup and remove not instrumented code.
* include/profile/deque: Likewise.
* include/profile/forward_list: Likewise.
* include/profile/list (std::__profile::_List_profile<>): New.
(std::__profile::list<>): Inherit from latter and adapt.
* include/profile/impl/profiler_map_to_unordered_map.h: Generalize
advise to match any ordered to unordered container conversion.
* include/profile/ordered_base.h (std::__profile::_Ordered_profile<>):
New.
* include/Makefile.am: Add latter.
* include/Makefile.in: Regenerate.
* include/profile/map.h (std::__profile::map<>): Inherit from latter,
remove not instrumented code.
* include/profile/multimap.h (std::__profile::multimap<>): Likewise.
* include/profile/set.h (std::__profile::set<>): Likewise.
* include/profile/multiset.h (std::__profile::multiset<>): Likewise.
* include/profile/unordered_base.h: Add some line feed.
* include/profile/unordered_map: Clean useless white chars and replace
spaces with tabs.
* include/profile/unordered_set: Likewise.
* include/profile/vector (std::__profile::_Vector_profile_pre<>): New.
(std::__profile::_Vector_profile_post<>): New.
(std::__profile::vector<>): Inherit from latter and adapt.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210900 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/profile/deque')
-rw-r--r-- | libstdc++-v3/include/profile/deque | 359 |
1 files changed, 32 insertions, 327 deletions
diff --git a/libstdc++-v3/include/profile/deque b/libstdc++-v3/include/profile/deque index 2c4f9cbd019..13513f4bdc7 100644 --- a/libstdc++-v3/include/profile/deque +++ b/libstdc++-v3/include/profile/deque @@ -43,26 +43,29 @@ namespace __profile typedef _GLIBCXX_STD_C::deque<_Tp, _Allocator> _Base; public: - typedef typename _Base::reference reference; - typedef typename _Base::const_reference const_reference; - - typedef typename _Base::iterator iterator; - typedef typename _Base::const_iterator const_iterator; - typedef typename _Base::reverse_iterator reverse_iterator; - typedef typename _Base::const_reverse_iterator const_reverse_iterator; - - typedef typename _Base::size_type size_type; - typedef typename _Base::difference_type difference_type; - - typedef _Tp value_type; - typedef _Allocator allocator_type; - typedef typename _Base::pointer pointer; - typedef typename _Base::const_pointer const_pointer; + typedef typename _Base::size_type size_type; + typedef typename _Base::value_type value_type; // 23.2.1.1 construct/copy/destroy: +#if __cplusplus < 201103L deque() : _Base() { } + deque(const deque& __x) + : _Base(__x) { } + + ~deque() { } +#else + deque() = default; + deque(const deque&) = default; + deque(deque&&) = default; + + ~deque() = default; + + deque(initializer_list<value_type> __l, + const _Allocator& __a = _Allocator()) + : _Base(__l, __a) { } +#endif explicit deque(const _Allocator& __a) @@ -89,346 +92,48 @@ namespace __profile #else template<typename _InputIterator> #endif - deque(_InputIterator __first, _InputIterator __last, + deque(_InputIterator __first, _InputIterator __last, const _Allocator& __a = _Allocator()) : _Base(__first, __last, __a) - { } - - deque(const deque& __x) - : _Base(__x) { } + { } deque(const _Base& __x) : _Base(__x) { } -#if __cplusplus >= 201103L - deque(deque&& __x) - : _Base(std::move(__x)) - { } - - deque(initializer_list<value_type> __l, - const allocator_type& __a = allocator_type()) - : _Base(__l, __a) { } -#endif - - ~deque() _GLIBCXX_NOEXCEPT { } - +#if __cplusplus < 201103L deque& operator=(const deque& __x) { - *static_cast<_Base*>(this) = __x; + _M_base() = __x; return *this; } +#else + deque& + operator=(const deque&) = default; -#if __cplusplus >= 201103L deque& - operator=(deque&& __x) noexcept - { - // NB: DR 1204. - // NB: DR 675. - this->clear(); - this->swap(__x); - return *this; - } + operator=(deque&&) = default; deque& operator=(initializer_list<value_type> __l) { - *static_cast<_Base*>(this) = __l; + _M_base() = __l; return *this; } #endif -#if __cplusplus >= 201103L - template<typename _InputIterator, - typename = std::_RequireInputIter<_InputIterator>> -#else - template<typename _InputIterator> -#endif - void - assign(_InputIterator __first, _InputIterator __last) - { - _Base::assign(__first, __last); - } - - void - assign(size_type __n, const _Tp& __t) - { - _Base::assign(__n, __t); - } - -#if __cplusplus >= 201103L - void - assign(initializer_list<value_type> __l) - { - _Base::assign(__l); - } -#endif - - using _Base::get_allocator; - - // iterators: - iterator - begin() _GLIBCXX_NOEXCEPT - { return iterator(_Base::begin()); } - - const_iterator - begin() const _GLIBCXX_NOEXCEPT - { return const_iterator(_Base::begin()); } - - iterator - end() _GLIBCXX_NOEXCEPT - { return iterator(_Base::end()); } - - const_iterator - end() const _GLIBCXX_NOEXCEPT - { return const_iterator(_Base::end()); } - - reverse_iterator - rbegin() _GLIBCXX_NOEXCEPT - { return reverse_iterator(end()); } - - const_reverse_iterator - rbegin() const _GLIBCXX_NOEXCEPT - { return const_reverse_iterator(end()); } - - reverse_iterator - rend() _GLIBCXX_NOEXCEPT - { return reverse_iterator(begin()); } - - const_reverse_iterator - rend() const _GLIBCXX_NOEXCEPT - { return const_reverse_iterator(begin()); } - -#if __cplusplus >= 201103L - const_iterator - cbegin() const noexcept - { return const_iterator(_Base::begin()); } - - const_iterator - cend() const noexcept - { return const_iterator(_Base::end()); } - - const_reverse_iterator - crbegin() const noexcept - { return const_reverse_iterator(end()); } - - const_reverse_iterator - crend() const noexcept - { return const_reverse_iterator(begin()); } -#endif - - // 23.2.1.2 capacity: - using _Base::size; - using _Base::max_size; - -#if __cplusplus >= 201103L - void - resize(size_type __sz) - { - _Base::resize(__sz); - } - - void - resize(size_type __sz, const _Tp& __c) - { - _Base::resize(__sz, __c); - } -#else void - resize(size_type __sz, _Tp __c = _Tp()) - { - _Base::resize(__sz, __c); - } -#endif - + swap(deque& __x) #if __cplusplus >= 201103L - using _Base::shrink_to_fit; + noexcept( noexcept(declval<_Base>().swap(__x)) ) #endif - - using _Base::empty; - - // element access: - reference - operator[](size_type __n) _GLIBCXX_NOEXCEPT - { - return _M_base()[__n]; - } - - const_reference - operator[](size_type __n) const _GLIBCXX_NOEXCEPT - { - return _M_base()[__n]; - } - - using _Base::at; - - reference - front() _GLIBCXX_NOEXCEPT - { - return _Base::front(); - } - - const_reference - front() const _GLIBCXX_NOEXCEPT - { - return _Base::front(); - } - - reference - back() _GLIBCXX_NOEXCEPT - { - return _Base::back(); - } - - const_reference - back() const _GLIBCXX_NOEXCEPT - { - return _Base::back(); - } - - // 23.2.1.3 modifiers: - void - push_front(const _Tp& __x) - { - _Base::push_front(__x); - } - - void - push_back(const _Tp& __x) - { - _Base::push_back(__x); - } - -#if __cplusplus >= 201103L - void - push_front(_Tp&& __x) - { emplace_front(std::move(__x)); } - - void - push_back(_Tp&& __x) - { emplace_back(std::move(__x)); } - - template<typename... _Args> - void - emplace_front(_Args&&... __args) - { - _Base::emplace_front(std::forward<_Args>(__args)...); - } - - template<typename... _Args> - void - emplace_back(_Args&&... __args) - { - _Base::emplace_back(std::forward<_Args>(__args)...); - } - - template<typename... _Args> - iterator - emplace(const_iterator __position, _Args&&... __args) - { - typename _Base::iterator __res = _Base::emplace(__position, - std::forward<_Args>(__args)...); - return iterator(__res); - } -#endif - - iterator -#if __cplusplus >= 201103L - insert(const_iterator __position, const _Tp& __x) -#else - insert(iterator __position, const _Tp& __x) -#endif - { - typename _Base::iterator __res = _Base::insert(__position, __x); - return iterator(__res); - } - -#if __cplusplus >= 201103L - iterator - insert(const_iterator __position, _Tp&& __x) - { return emplace(__position, std::move(__x)); } - - iterator - insert(const_iterator __p, initializer_list<value_type> __l) - { return _Base::insert(__p, __l); } -#endif - -#if __cplusplus >= 201103L - iterator - insert(const_iterator __position, size_type __n, const _Tp& __x) - { return _Base::insert(__position, __n, __x); } -#else - void - insert(iterator __position, size_type __n, const _Tp& __x) - { _Base::insert(__position, __n, __x); } -#endif - -#if __cplusplus >= 201103L - template<typename _InputIterator, - typename = std::_RequireInputIter<_InputIterator>> - iterator - insert(const_iterator __position, - _InputIterator __first, _InputIterator __last) - { return _Base::insert(__position, __first, __last); } -#else - template<typename _InputIterator> - void - insert(iterator __position, - _InputIterator __first, _InputIterator __last) - { _Base::insert(__position, __first, __last); } -#endif - - void - pop_front() _GLIBCXX_NOEXCEPT - { - _Base::pop_front(); - } - - void - pop_back() _GLIBCXX_NOEXCEPT - { - _Base::pop_back(); - } - - iterator -#if __cplusplus >= 201103L - erase(const_iterator __position) -#else - erase(iterator __position) -#endif - { - return _Base::erase(__position); - } - - iterator -#if __cplusplus >= 201103L - erase(const_iterator __first, const_iterator __last) -#else - erase(iterator __first, iterator __last) -#endif - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 151. can't currently clear() empty container - return _Base::erase(__first, __last); - } - - void - swap(deque& __x) _GLIBCXX_NOEXCEPT - { - _Base::swap(__x); - } - - void - clear() _GLIBCXX_NOEXCEPT - { - _Base::clear(); - } + { _Base::swap(__x); } _Base& - _M_base() _GLIBCXX_NOEXCEPT { return *this; } + _M_base() _GLIBCXX_NOEXCEPT { return *this; } const _Base& - _M_base() const _GLIBCXX_NOEXCEPT { return *this; } + _M_base() const _GLIBCXX_NOEXCEPT { return *this; } }; template<typename _Tp, typename _Alloc> |