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