1// -*- C++ -*- 2 3// Copyright (C) 2005-2013 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the terms 7// of the GNU General Public License as published by the Free Software 8// Foundation; either version 3, or (at your option) any later 9// version. 10 11// This library is distributed in the hope that it will be useful, but 12// WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14// General Public License for more details. 15 16// Under Section 7 of GPL version 3, you are granted additional 17// permissions described in the GCC Runtime Library Exception, version 18// 3.1, as published by the Free Software Foundation. 19 20// You should have received a copy of the GNU General Public License and 21// a copy of the GCC Runtime Library Exception along with this program; 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23// <http://www.gnu.org/licenses/>. 24 25// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. 26 27// Permission to use, copy, modify, sell, and distribute this software 28// is hereby granted without fee, provided that the above copyright 29// notice appears in all copies, and that both that copyright notice 30// and this permission notice appear in supporting documentation. None 31// of the above authors, nor IBM Haifa Research Laboratories, make any 32// representation about the suitability of this software for any 33// purpose. It is provided "as is" without express or implied 34// warranty. 35 36/** 37 * @file bin_search_tree_/iterators_fn_imps.hpp 38 * Contains an implementation class for bin_search_tree_. 39 */ 40 41PB_DS_CLASS_T_DEC 42inline typename PB_DS_CLASS_C_DEC::iterator 43PB_DS_CLASS_C_DEC:: 44begin() 45{ 46 return (iterator(m_p_head->m_p_left)); 47} 48 49PB_DS_CLASS_T_DEC 50inline typename PB_DS_CLASS_C_DEC::const_iterator 51PB_DS_CLASS_C_DEC:: 52begin() const 53{ 54 return (const_iterator(m_p_head->m_p_left)); 55} 56 57PB_DS_CLASS_T_DEC 58inline typename PB_DS_CLASS_C_DEC::iterator 59PB_DS_CLASS_C_DEC:: 60end() 61{ 62 return (iterator(m_p_head)); 63} 64 65PB_DS_CLASS_T_DEC 66inline typename PB_DS_CLASS_C_DEC::const_iterator 67PB_DS_CLASS_C_DEC:: 68end() const 69{ 70 return (const_iterator(m_p_head)); 71} 72 73PB_DS_CLASS_T_DEC 74inline typename PB_DS_CLASS_C_DEC::const_reverse_iterator 75PB_DS_CLASS_C_DEC:: 76rbegin() const 77{ 78 return (const_reverse_iterator(m_p_head->m_p_right)); 79} 80 81PB_DS_CLASS_T_DEC 82inline typename PB_DS_CLASS_C_DEC::reverse_iterator 83PB_DS_CLASS_C_DEC:: 84rbegin() 85{ 86 return (reverse_iterator(m_p_head->m_p_right)); 87} 88 89PB_DS_CLASS_T_DEC 90inline typename PB_DS_CLASS_C_DEC::reverse_iterator 91PB_DS_CLASS_C_DEC:: 92rend() 93{ 94 return (reverse_iterator(m_p_head)); 95} 96 97PB_DS_CLASS_T_DEC 98inline typename PB_DS_CLASS_C_DEC::const_reverse_iterator 99PB_DS_CLASS_C_DEC:: 100rend() const 101{ 102 return (const_reverse_iterator(m_p_head)); 103} 104 105PB_DS_CLASS_T_DEC 106inline typename PB_DS_CLASS_C_DEC::node_const_iterator 107PB_DS_CLASS_C_DEC:: 108node_begin() const 109{ 110 return (node_const_iterator(m_p_head->m_p_parent)); 111} 112 113PB_DS_CLASS_T_DEC 114inline typename PB_DS_CLASS_C_DEC::node_iterator 115PB_DS_CLASS_C_DEC:: 116node_begin() 117{ 118 return (node_iterator(m_p_head->m_p_parent)); 119} 120 121PB_DS_CLASS_T_DEC 122inline typename PB_DS_CLASS_C_DEC::node_const_iterator 123PB_DS_CLASS_C_DEC:: 124node_end() const 125{ 126 return (node_const_iterator(0)); 127} 128 129PB_DS_CLASS_T_DEC 130inline typename PB_DS_CLASS_C_DEC::node_iterator 131PB_DS_CLASS_C_DEC:: 132node_end() 133{ 134 return (node_iterator(0)); 135} 136 137