annotate DEPENDENCIES/generic/include/boost/pending/queue.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // (C) Copyright Jeremy Siek 2004
Chris@16 2 // Distributed under the Boost Software License, Version 1.0. (See
Chris@16 3 // accompanying file LICENSE_1_0.txt or copy at
Chris@16 4 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 5
Chris@16 6 #ifndef BOOST_QUEUE_HPP
Chris@16 7 #define BOOST_QUEUE_HPP
Chris@16 8
Chris@16 9 #include <deque>
Chris@16 10 #include <algorithm>
Chris@16 11
Chris@16 12 namespace boost {
Chris@16 13
Chris@16 14 template <class _Tp,
Chris@16 15 class _Sequence = std::deque<_Tp> >
Chris@16 16 class queue;
Chris@16 17
Chris@16 18 template <class _Tp, class _Seq>
Chris@16 19 inline bool operator==(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
Chris@16 20
Chris@16 21 template <class _Tp, class _Seq>
Chris@16 22 inline bool operator<(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
Chris@16 23
Chris@16 24
Chris@16 25 template <class _Tp, class _Sequence>
Chris@16 26 class queue {
Chris@16 27
Chris@16 28 #ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
Chris@16 29 template <class _Tp1, class _Seq1>
Chris@16 30 friend bool operator== (const queue<_Tp1, _Seq1>&,
Chris@16 31 const queue<_Tp1, _Seq1>&);
Chris@16 32 template <class _Tp1, class _Seq1>
Chris@16 33 friend bool operator< (const queue<_Tp1, _Seq1>&,
Chris@16 34 const queue<_Tp1, _Seq1>&);
Chris@16 35 #endif
Chris@16 36 public:
Chris@16 37 typedef typename _Sequence::value_type value_type;
Chris@16 38 typedef typename _Sequence::size_type size_type;
Chris@16 39 typedef _Sequence container_type;
Chris@16 40
Chris@16 41 typedef typename _Sequence::reference reference;
Chris@16 42 typedef typename _Sequence::const_reference const_reference;
Chris@16 43 #ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
Chris@16 44 protected:
Chris@16 45 #endif
Chris@16 46 _Sequence c;
Chris@16 47 public:
Chris@16 48 queue() : c() {}
Chris@16 49 explicit queue(const _Sequence& __c) : c(__c) {}
Chris@16 50
Chris@16 51 bool empty() const { return c.empty(); }
Chris@16 52 size_type size() const { return c.size(); }
Chris@16 53 reference front() { return c.front(); }
Chris@16 54 const_reference front() const { return c.front(); }
Chris@16 55 reference top() { return c.front(); }
Chris@16 56 const_reference top() const { return c.front(); }
Chris@16 57 reference back() { return c.back(); }
Chris@16 58 const_reference back() const { return c.back(); }
Chris@16 59 void push(const value_type& __x) { c.push_back(__x); }
Chris@16 60 void pop() { c.pop_front(); }
Chris@16 61
Chris@16 62 void swap(queue& other)
Chris@16 63 {
Chris@16 64 using std::swap;
Chris@16 65 swap(c, other.c);
Chris@16 66 }
Chris@16 67 };
Chris@16 68
Chris@16 69 template <class _Tp, class _Sequence>
Chris@16 70 bool
Chris@16 71 operator==(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
Chris@16 72 {
Chris@16 73 return __x.c == __y.c;
Chris@16 74 }
Chris@16 75
Chris@16 76 template <class _Tp, class _Sequence>
Chris@16 77 bool
Chris@16 78 operator<(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
Chris@16 79 {
Chris@16 80 return __x.c < __y.c;
Chris@16 81 }
Chris@16 82
Chris@16 83 template <class _Tp, class _Sequence>
Chris@16 84 bool
Chris@16 85 operator!=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
Chris@16 86 {
Chris@16 87 return !(__x == __y);
Chris@16 88 }
Chris@16 89
Chris@16 90 template <class _Tp, class _Sequence>
Chris@16 91 bool
Chris@16 92 operator>(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
Chris@16 93 {
Chris@16 94 return __y < __x;
Chris@16 95 }
Chris@16 96
Chris@16 97 template <class _Tp, class _Sequence>
Chris@16 98 bool
Chris@16 99 operator<=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
Chris@16 100 {
Chris@16 101 return !(__y < __x);
Chris@16 102 }
Chris@16 103
Chris@16 104 template <class _Tp, class _Sequence>
Chris@16 105 bool
Chris@16 106 operator>=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
Chris@16 107 {
Chris@16 108 return !(__x < __y);
Chris@16 109 }
Chris@16 110
Chris@16 111 template <class _Tp, class _Sequence>
Chris@16 112 inline void
Chris@16 113 swap(queue<_Tp, _Sequence>& __x, queue<_Tp, _Sequence>& __y)
Chris@16 114 { __x.swap(__y); }
Chris@16 115
Chris@16 116 } /* namespace boost */
Chris@16 117
Chris@16 118 #endif /* BOOST_QUEUE_HPP */