diff options
Diffstat (limited to 'tests/libcxx/include/queue')
-rw-r--r-- | tests/libcxx/include/queue | 662 |
1 files changed, 0 insertions, 662 deletions
diff --git a/tests/libcxx/include/queue b/tests/libcxx/include/queue deleted file mode 100644 index f2e5d300..00000000 --- a/tests/libcxx/include/queue +++ /dev/null @@ -1,662 +0,0 @@ -// -*- C++ -*- -//===--------------------------- queue ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_QUEUE -#define _LIBCPP_QUEUE - -/* - queue synopsis - -namespace std -{ - -template <class T, class Container = deque<T>> -class queue -{ -public: - typedef Container container_type; - typedef typename container_type::value_type value_type; - typedef typename container_type::reference reference; - typedef typename container_type::const_reference const_reference; - typedef typename container_type::size_type size_type; - -protected: - container_type c; - -public: - queue(); - explicit queue(const container_type& c); - explicit queue(container_type&& c); - queue(queue&& q); - template <class Alloc> - explicit queue(const Alloc& a); - template <class Alloc> - queue(const container_type& c, const Alloc& a); - template <class Alloc> - queue(container_type&& c, const Alloc& a); - template <class Alloc> - queue(queue&& q, const Alloc& a); - - queue& operator=(queue&& q); - - bool empty() const; - size_type size() const; - - reference front(); - const_reference front() const; - reference back(); - const_reference back() const; - - void push(const value_type& v); - void push(value_type&& v); - template <class... Args> void emplace(Args&&... args); - void pop(); - - void swap(queue& q); -}; - -template <class T, class Container> - bool operator==(const queue<T, Container>& x,const queue<T, Container>& y); - -template <class T, class Container> - bool operator< (const queue<T, Container>& x,const queue<T, Container>& y); - -template <class T, class Container> - bool operator!=(const queue<T, Container>& x,const queue<T, Container>& y); - -template <class T, class Container> - bool operator> (const queue<T, Container>& x,const queue<T, Container>& y); - -template <class T, class Container> - bool operator>=(const queue<T, Container>& x,const queue<T, Container>& y); - -template <class T, class Container> - bool operator<=(const queue<T, Container>& x,const queue<T, Container>& y); - -template <class T, class Container> - void swap(queue<T, Container>& x, queue<T, Container>& y); - -template <class T, class Container = vector<T>, - class Compare = less<typename Container::value_type>> -class priority_queue -{ -public: - typedef Container container_type; - typedef typename container_type::value_type value_type; - typedef typename container_type::reference reference; - typedef typename container_type::const_reference const_reference; - typedef typename container_type::size_type size_type; - -protected: - container_type c; - Compare comp; - -public: - explicit priority_queue(const Compare& comp = Compare()); - priority_queue(const Compare& comp, const container_type& c); - explicit priority_queue(const Compare& comp, container_type&& c); - template <class InputIterator> - priority_queue(InputIterator first, InputIterator last, - const Compare& comp = Compare()); - template <class InputIterator> - priority_queue(InputIterator first, InputIterator last, - const Compare& comp, const container_type& c); - template <class InputIterator> - priority_queue(InputIterator first, InputIterator last, - const Compare& comp, container_type&& c); - priority_queue(priority_queue&& q); - priority_queue& operator=(priority_queue&& q); - template <class Alloc> - explicit priority_queue(const Alloc& a); - template <class Alloc> - priority_queue(const Compare& comp, const Alloc& a); - template <class Alloc> - priority_queue(const Compare& comp, const container_type& c, - const Alloc& a); - template <class Alloc> - priority_queue(const Compare& comp, container_type&& c, - const Alloc& a); - template <class Alloc> - priority_queue(priority_queue&& q, const Alloc& a); - - bool empty() const; - size_type size() const; - const_reference top() const; - - void push(const value_type& v); - void push(value_type&& v); - template <class... Args> void emplace(Args&&... args); - void pop(); - - void swap(priority_queue& q); -}; - -template <class T, class Container, class Compare> - void swap(priority_queue<T, Container, Compare>& x, - priority_queue<T, Container, Compare>& y); - -} // std - -*/ - -#include <__config> -#include <deque> -#include <vector> -#include <functional> -#include <algorithm> - -#pragma GCC system_header - -_LIBCPP_BEGIN_NAMESPACE_STD - -template <class _Tp, class _Container> class queue; - -template <class _Tp, class _Container> -bool -operator==(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y); - -template <class _Tp, class _Container> -bool -operator< (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y); - -template <class _Tp, class _Container = deque<_Tp> > -class _LIBCPP_VISIBLE queue -{ -public: - typedef _Container container_type; - typedef typename container_type::value_type value_type; - typedef typename container_type::reference reference; - typedef typename container_type::const_reference const_reference; - typedef typename container_type::size_type size_type; - -protected: - container_type c; - -public: - _LIBCPP_INLINE_VISIBILITY - queue() : c() {} - _LIBCPP_INLINE_VISIBILITY - explicit queue(const container_type& __c) : c(__c) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - explicit queue(container_type&& __c) : c(_STD::move(__c)) {} - _LIBCPP_INLINE_VISIBILITY - queue(queue&& __q) : c(_STD::move(__q.c)) {} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - template <class _Alloc> - _LIBCPP_INLINE_VISIBILITY - explicit queue(const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0) - : c(__a) {} - template <class _Alloc> - _LIBCPP_INLINE_VISIBILITY - queue(const queue& __q, const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0) - : c(__q.c, __a) {} - template <class _Alloc> - _LIBCPP_INLINE_VISIBILITY - queue(const container_type& __c, const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0) - : c(__c, __a) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template <class _Alloc> - _LIBCPP_INLINE_VISIBILITY - queue(container_type&& __c, const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0) - : c(_STD::move(__c), __a) {} - template <class _Alloc> - _LIBCPP_INLINE_VISIBILITY - queue(queue&& __q, const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0) - : c(_STD::move(__q.c), __a) {} - - _LIBCPP_INLINE_VISIBILITY - queue& operator=(queue&& __q) - { - c = _STD::move(__q.c); - return *this; - } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - bool empty() const {return c.empty();} - _LIBCPP_INLINE_VISIBILITY - size_type size() const {return c.size();} - - _LIBCPP_INLINE_VISIBILITY - reference front() {return c.front();} - _LIBCPP_INLINE_VISIBILITY - const_reference front() const {return c.front();} - _LIBCPP_INLINE_VISIBILITY - reference back() {return c.back();} - _LIBCPP_INLINE_VISIBILITY - const_reference back() const {return c.back();} - - _LIBCPP_INLINE_VISIBILITY - void push(const value_type& __v) {c.push_back(__v);} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void push(value_type&& __v) {c.push_back(_STD::move(__v));} -#ifndef _LIBCPP_HAS_NO_VARIADICS - template <class... _Args> - _LIBCPP_INLINE_VISIBILITY - void emplace(_Args&&... __args) - {c.emplace_back(_STD::forward<_Args>(__args)...);} -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void pop() {c.pop_front();} - - _LIBCPP_INLINE_VISIBILITY - void swap(queue& __q) - { - using _STD::swap; - swap(c, __q.c); - } - - template <class _T1, class _C1> - friend - _LIBCPP_INLINE_VISIBILITY - bool - operator==(const queue<_T1, _C1>& __x,const queue<_T1, _C1>& __y); - - template <class _T1, class _C1> - friend - _LIBCPP_INLINE_VISIBILITY - bool - operator< (const queue<_T1, _C1>& __x,const queue<_T1, _C1>& __y); -}; - -template <class _Tp, class _Container> -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y) -{ - return __x.c == __y.c; -} - -template <class _Tp, class _Container> -inline _LIBCPP_INLINE_VISIBILITY -bool -operator< (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y) -{ - return __x.c < __y.c; -} - -template <class _Tp, class _Container> -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y) -{ - return !(__x == __y); -} - -template <class _Tp, class _Container> -inline _LIBCPP_INLINE_VISIBILITY -bool -operator> (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y) -{ - return __y < __x; -} - -template <class _Tp, class _Container> -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y) -{ - return !(__x < __y); -} - -template <class _Tp, class _Container> -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y) -{ - return !(__y < __x); -} - -template <class _Tp, class _Container> -inline _LIBCPP_INLINE_VISIBILITY -void -swap(queue<_Tp, _Container>& __x, queue<_Tp, _Container>& __y) -{ - __x.swap(__y); -} - -template <class _Tp, class _Container, class _Alloc> -struct _LIBCPP_VISIBLE uses_allocator<queue<_Tp, _Container>, _Alloc> - : public uses_allocator<_Container, _Alloc> -{ -}; - -template <class _Tp, class _Container = vector<_Tp>, - class _Compare = less<typename _Container::value_type> > -class _LIBCPP_VISIBLE priority_queue -{ -public: - typedef _Container container_type; - typedef _Compare value_compare; - typedef typename container_type::value_type value_type; - typedef typename container_type::reference reference; - typedef typename container_type::const_reference const_reference; - typedef typename container_type::size_type size_type; - -protected: - container_type c; - value_compare comp; - -public: - _LIBCPP_INLINE_VISIBILITY - explicit priority_queue(const value_compare& __comp = value_compare()) - : c(), comp(__comp) {} - priority_queue(const value_compare& __comp, const container_type& __c); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - explicit priority_queue(const value_compare& __comp, container_type&& __c); -#endif - template <class _InputIter> - priority_queue(_InputIter __f, _InputIter __l, - const value_compare& __comp = value_compare()); - template <class _InputIter> - priority_queue(_InputIter __f, _InputIter __l, - const value_compare& __comp, const container_type& __c); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template <class _InputIter> - priority_queue(_InputIter __f, _InputIter __l, - const value_compare& __comp, container_type&& __c); - priority_queue(priority_queue&& __q); - priority_queue& operator=(priority_queue&& __q); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - template <class _Alloc> - explicit priority_queue(const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0); - template <class _Alloc> - priority_queue(const value_compare& __comp, const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0); - template <class _Alloc> - priority_queue(const value_compare& __comp, const container_type& __c, - const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0); - template <class _Alloc> - priority_queue(const priority_queue& __q, const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template <class _Alloc> - priority_queue(const value_compare& __comp, container_type&& __c, - const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0); - template <class _Alloc> - priority_queue(priority_queue&& __q, const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type* = 0); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - bool empty() const {return c.empty();} - _LIBCPP_INLINE_VISIBILITY - size_type size() const {return c.size();} - _LIBCPP_INLINE_VISIBILITY - const_reference top() const {return c.front();} - - void push(const value_type& __v); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - void push(value_type&& __v); -#ifndef _LIBCPP_HAS_NO_VARIADICS - template <class... _Args> void emplace(_Args&&... __args); -#endif -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - void pop(); - - void swap(priority_queue& __q); -}; - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(const _Compare& __comp, - const container_type& __c) - : c(__c), - comp(__comp) -{ - _STD::make_heap(c.begin(), c.end(), comp); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp, - container_type&& __c) - : c(_STD::move(__c)), - comp(__comp) -{ - _STD::make_heap(c.begin(), c.end(), comp); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -template <class _InputIter> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(_InputIter __f, _InputIter __l, - const value_compare& __comp) - : c(__f, __l), - comp(__comp) -{ - _STD::make_heap(c.begin(), c.end(), comp); -} - -template <class _Tp, class _Container, class _Compare> -template <class _InputIter> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(_InputIter __f, _InputIter __l, - const value_compare& __comp, - const container_type& __c) - : c(__c), - comp(__comp) -{ - c.insert(c.end(), __f, __l); - _STD::make_heap(c.begin(), c.end(), comp); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -template <class _InputIter> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(_InputIter __f, _InputIter __l, - const value_compare& __comp, - container_type&& __c) - : c(_STD::move(__c)), - comp(__comp) -{ - c.insert(c.end(), __f, __l); - _STD::make_heap(c.begin(), c.end(), comp); -} - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(priority_queue&& __q) - : c(_STD::move(__q.c)), - comp(_STD::move(__q.comp)) -{ -} - -template <class _Tp, class _Container, class _Compare> -priority_queue<_Tp, _Container, _Compare>& -priority_queue<_Tp, _Container, _Compare>::operator=(priority_queue&& __q) -{ - c = _STD::move(__q.c); - comp = _STD::move(__q.comp); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -template <class _Alloc> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type*) - : c(__a) -{ -} - -template <class _Tp, class _Container, class _Compare> -template <class _Alloc> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp, - const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type*) - : c(__a), - comp(__comp) -{ -} - -template <class _Tp, class _Container, class _Compare> -template <class _Alloc> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp, - const container_type& __c, - const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type*) - : c(__c, __a), - comp(__comp) -{ - _STD::make_heap(c.begin(), c.end(), comp); -} - -template <class _Tp, class _Container, class _Compare> -template <class _Alloc> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(const priority_queue& __q, - const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type*) - : c(__q.c, __a), - comp(__q.comp) -{ - _STD::make_heap(c.begin(), c.end(), comp); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -template <class _Alloc> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp, - container_type&& __c, - const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type*) - : c(_STD::move(__c), __a), - comp(__comp) -{ - _STD::make_heap(c.begin(), c.end(), comp); -} - -template <class _Tp, class _Container, class _Compare> -template <class _Alloc> -inline _LIBCPP_INLINE_VISIBILITY -priority_queue<_Tp, _Container, _Compare>::priority_queue(priority_queue&& __q, - const _Alloc& __a, - typename enable_if<uses_allocator<container_type, - _Alloc>::value>::type*) - : c(_STD::move(__q.c), __a), - comp(_STD::move(__q.comp)) -{ - _STD::make_heap(c.begin(), c.end(), comp); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -void -priority_queue<_Tp, _Container, _Compare>::push(const value_type& __v) -{ - c.push_back(__v); - _STD::push_heap(c.begin(), c.end(), comp); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -void -priority_queue<_Tp, _Container, _Compare>::push(value_type&& __v) -{ - c.push_back(_STD::move(__v)); - _STD::push_heap(c.begin(), c.end(), comp); -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template <class _Tp, class _Container, class _Compare> -template <class... _Args> -inline _LIBCPP_INLINE_VISIBILITY -void -priority_queue<_Tp, _Container, _Compare>::emplace(_Args&&... __args) -{ - c.emplace_back(_STD::forward<_Args>(__args)...); - _STD::push_heap(c.begin(), c.end(), comp); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -void -priority_queue<_Tp, _Container, _Compare>::pop() -{ - _STD::pop_heap(c.begin(), c.end(), comp); - c.pop_back(); -} - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -void -priority_queue<_Tp, _Container, _Compare>::swap(priority_queue& __q) -{ - using _STD::swap; - swap(c, __q.c); - swap(comp, __q.comp); -} - -template <class _Tp, class _Container, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY -void -swap(priority_queue<_Tp, _Container, _Compare>& __x, - priority_queue<_Tp, _Container, _Compare>& __y) -{ - __x.swap(__y); -} - -template <class _Tp, class _Container, class _Compare, class _Alloc> -struct _LIBCPP_VISIBLE uses_allocator<priority_queue<_Tp, _Container, _Compare>, _Alloc> - : public uses_allocator<_Container, _Alloc> -{ -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_QUEUE |