Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

gslib::sapling::tree< Value, Allocator > Class Template Reference

STL コンテナ風の木クラス。. More...

#include <tree.h>

Collaboration diagram for gslib::sapling::tree< Value, Allocator >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef Value value_type
typedef value_typereference
typedef const value_typeconst_reference
typedef size_t size_type
typedef sibling_iterator iterator
typedef const_sibling_iterator const_iterator

Public Member Functions

template<typename It> It insert (It &ioWhere, const Value &v)
void erase (iterator_base &it)
void clear ()
void root (const_reference v)
 ルートが存在しない場合はルートを作成する。 すでにルートが存在する場合は v で上書きする。

reference root ()
const_reference root () const
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
bool empty () const
 tree (const Allocator &allocator=Allocator())
void swap (tree &other)
 tree (const tree &other)
treeoperator= (const tree &other)
 ~tree ()

Static Public Attributes

const size_type npos = ~0
const size_type allocation_size = sizeof ( node )
 tree が一度にアロケーションする大きさ ( メモリプールなどに利用する )


Private Types

typedef Allocator::rebind<
node >::other 
allocator_type

Private Member Functions

noderoot_ptr ()
const noderoot_ptr () const
void connect_root (link *root)
void copy (const_sibling_iterator first, const_sibling_iterator last, sibling_iterator out_last)

Static Private Member Functions

nodeget_node (link *lnk)
bool has_child (const link *lnk)
bool is_root_end (const link *lnk)
nodeget_parent (link *lnk)
const nodeget_parent (const link *lnk)
bool is_end (link *lnk)
bool is_back (link *lnk)
bool is_begin (link *lnk)
bool is_root (const link *lnk)

Private Attributes

allocator_type allocator_
root_end end_

Detailed Description

template<typename Value, typename Allocator = std::allocator< void >>
class gslib::sapling::tree< Value, Allocator >

STL コンテナ風の木クラス。.

Definition at line 88 of file tree.h.


Member Typedef Documentation

template<typename Value, typename Allocator = std::allocator< void >>
typedef Allocator::rebind< node >::other gslib::sapling::tree< Value, Allocator >::allocator_type [private]
 

Definition at line 275 of file tree.h.

template<typename Value, typename Allocator = std::allocator< void >>
typedef const_sibling_iterator gslib::sapling::tree< Value, Allocator >::const_iterator
 

Definition at line 543 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::begin(), and gslib::sapling::tree< Value, Allocator >::end().

template<typename Value, typename Allocator = std::allocator< void >>
typedef const value_type& gslib::sapling::tree< Value, Allocator >::const_reference
 

Definition at line 92 of file tree.h.

template<typename Value, typename Allocator = std::allocator< void >>
typedef sibling_iterator gslib::sapling::tree< Value, Allocator >::iterator
 

Definition at line 542 of file tree.h.

template<typename Value, typename Allocator = std::allocator< void >>
typedef value_type& gslib::sapling::tree< Value, Allocator >::reference
 

Definition at line 91 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::root(), and gslib::sapling::tree< Value, Allocator >::node::value().

template<typename Value, typename Allocator = std::allocator< void >>
typedef size_t gslib::sapling::tree< Value, Allocator >::size_type
 

Definition at line 93 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::iterator_base::depth(), and gslib::sapling::tree< Value, Allocator >::node::depth().

template<typename Value, typename Allocator = std::allocator< void >>
typedef Value gslib::sapling::tree< Value, Allocator >::value_type
 

Definition at line 90 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::root().


Constructor & Destructor Documentation

template<typename Value, typename Allocator = std::allocator< void >>
gslib::sapling::tree< Value, Allocator >::tree const Allocator &  allocator = Allocator()  )  [inline, explicit]
 

Definition at line 652 of file tree.h.

00652                                                                       :
00653                 allocator_( allocator ) {
00654             }
            

template<typename Value, typename Allocator = std::allocator< void >>
gslib::sapling::tree< Value, Allocator >::tree const tree< Value, Allocator > &  other  )  [inline]
 

Definition at line 676 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::const_sibling_iterator::begin(), gslib::sapling::tree< Value, Allocator >::copy(), gslib::sapling::tree< Value, Allocator >::empty(), gslib::sapling::tree< Value, Allocator >::const_sibling_iterator::end(), and gslib::sapling::tree< Value, Allocator >::root().

00676                                       {
00677                 if ( false == other.empty() ) {
00678                     root( other.root() );
00679                     const_sibling_iterator it = other.begin_sibling();
00680                     copy( it.begin(), it.end(), begin_sibling().end() );
00681                 }
00682             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
gslib::sapling::tree< Value, Allocator >::~tree  )  [inline]
 

Definition at line 690 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::clear().

00690                     {
00691                 clear();
00692             }

Here is the call graph for this function:


Member Function Documentation

template<typename Value, typename Allocator = std::allocator< void >>
const_iterator gslib::sapling::tree< Value, Allocator >::begin  )  const [inline]
 

Definition at line 642 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::const_iterator.

00642                                          {
00643                 return begin_sibling();
00644             }

template<typename Value, typename Allocator = std::allocator< void >>
iterator gslib::sapling::tree< Value, Allocator >::begin  )  [inline]
 

Definition at line 634 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::clear().

00634                              {
00635                 return begin_sibling();
00636             }

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::clear  )  [inline]
 

Definition at line 590 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::begin(), and gslib::sapling::tree< Value, Allocator >::erase().

Referenced by gslib::sapling::tree< Value, Allocator >::~tree().

00590                          {
00591                 erase( begin() );
00592             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::connect_root link root  )  [inline, private]
 

Definition at line 595 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::end_, gslib::sapling::tree< Value, Allocator >::link::next, gslib::sapling::tree< Value, Allocator >::root_end::parent, gslib::sapling::tree< Value, Allocator >::link::prev, and gslib::sapling::tree< Value, Allocator >::link::self.

Referenced by gslib::sapling::tree< Value, Allocator >::insert(), and gslib::sapling::tree< Value, Allocator >::swap().

00595                                             {
00596                 BOOST_ASSERT( root == root->self );
00597                 end_.next = root;
00598                 end_.prev = root;
00599                 root->next = &end_;
00600                 root->prev = &end_;
00601                 static_cast< node* >( root )->parent( &end_ );
00602             }

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::copy const_sibling_iterator  first,
const_sibling_iterator  last,
sibling_iterator  out_last
[inline, private]
 

Definition at line 603 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::const_sibling_iterator::begin(), gslib::sapling::tree< Value, Allocator >::const_sibling_iterator::end(), and gslib::sapling::tree< Value, Allocator >::insert().

Referenced by gslib::sapling::tree< Value, Allocator >::tree().

00603                                                                                                               {
00604                 for ( const_sibling_iterator it = first; it != last; ++it ) {
00605                     copy(
00606                         it.begin(),
00607                         it.end(),
00608                         insert( out_last, *it ).end() );
00609                 }
00610             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
bool gslib::sapling::tree< Value, Allocator >::empty  )  const [inline]
 

Definition at line 650 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::end_, and gslib::sapling::tree< Value, Allocator >::link::next.

Referenced by gslib::sapling::tree< Value, Allocator >::erase(), gslib::sapling::tree< Value, Allocator >::insert(), gslib::sapling::tree< Value, Allocator >::root(), gslib::sapling::scribble(), and gslib::sapling::tree< Value, Allocator >::tree().

00650 { return end_.next == &end_; }

template<typename Value, typename Allocator = std::allocator< void >>
const_iterator gslib::sapling::tree< Value, Allocator >::end  )  const [inline]
 

Definition at line 646 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::const_iterator.

00646                                        {
00647                 return end_sibling();
00648             }

template<typename Value, typename Allocator = std::allocator< void >>
iterator gslib::sapling::tree< Value, Allocator >::end  )  [inline]
 

Definition at line 638 of file tree.h.

Referenced by gslib::sapling::dump(), and gslib::sapling::tree< Value, Allocator >::root().

00638                            {
00639                 return end_sibling();
00640             }

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::erase iterator_base it  )  [inline]
 

Definition at line 568 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::iterator_base::cur_, gslib::sapling::tree< Value, Allocator >::empty(), gslib::sapling::tree< Value, Allocator >::link::next, gslib::sapling::tree< Value, Allocator >::link::prev, and gslib::sapling::tree< Value, Allocator >::iterator_base::self().

Referenced by gslib::sapling::tree< Value, Allocator >::clear().

00568                                             {
00569                 if ( empty() ) {
00570                     //  すでに空なので、何もしない
00571                     return;
00572                 }
00573                 
00574                 post_order_iterator first = post_order_iterator( it.self() );
00575                 first.bottom();
00576                 post_order_iterator last = post_order_iterator( it.self() );
00577                 for ( post_order_iterator j = first; j != last; ) {
00578                     post_order_iterator del( j++ );
00579                     del.self()->~node();
00580                     allocator_.deallocate( del.self(), 1 );
00581                 }
00582                 link* n = it.cur_->next;
00583                 link* p = it.cur_->prev;
00584                 p->next = n;
00585                 n->prev = p;
00586                 it.self()->~node();
00587                 allocator_.deallocate( it.self(), 1 );
00588             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
node* gslib::sapling::tree< Value, Allocator >::get_node link lnk  )  [inline, static, private]
 

Definition at line 236 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::link::self.

Referenced by gslib::sapling::tree< Value, Allocator >::iterator_base::depth(), and gslib::sapling::tree< Value, Allocator >::is_end().

00236                                                {
00237                 return static_cast< node* >( lnk->self );
00238             }

template<typename Value, typename Allocator = std::allocator< void >>
const node* gslib::sapling::tree< Value, Allocator >::get_parent const link lnk  )  [inline, static, private]
 

Definition at line 254 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::node::end(), gslib::sapling::tree< Value, Allocator >::node::parent(), and gslib::sapling::tree< Value, Allocator >::link::self.

00254                                                              {
00255                 const node* n = static_cast< const node* >( lnk->self );
00256                 return lnk == n->end() ? n : static_cast< const node* >( n->parent() );
00257             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
node* gslib::sapling::tree< Value, Allocator >::get_parent link lnk  )  [inline, static, private]
 

Definition at line 249 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::node::end(), gslib::sapling::tree< Value, Allocator >::node::parent(), and gslib::sapling::tree< Value, Allocator >::link::self.

Referenced by gslib::sapling::tree< Value, Allocator >::insert(), gslib::sapling::tree< Value, Allocator >::is_back(), gslib::sapling::tree< Value, Allocator >::is_begin(), gslib::sapling::tree< Value, Allocator >::is_root(), gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::parent(), gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::parent(), gslib::sapling::tree< Value, Allocator >::const_sibling_iterator::parent(), gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::up(), and gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::up().

00249                                                  {
00250                 node* n = static_cast< node* >( lnk->self );
00251                 return lnk == n->end() ? n : static_cast< node* >( n->parent() );
00252             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
bool gslib::sapling::tree< Value, Allocator >::has_child const link lnk  )  [inline, static, private]
 

Definition at line 240 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::node::begin(), gslib::sapling::tree< Value, Allocator >::node::end(), and gslib::sapling::tree< Value, Allocator >::link::self.

Referenced by gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::bottom_back(), and gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::increment().

00240                                                      {
00241                 const node* n = static_cast< const node* >( lnk->self );
00242                 return n->begin() != n->end();
00243             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
template<typename It>
It gslib::sapling::tree< Value, Allocator >::insert It &  ioWhere,
const Value &  v
[inline]
 

Definition at line 546 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::connect_root(), gslib::sapling::tree< Value, Allocator >::empty(), gslib::sapling::tree< Value, Allocator >::end_, gslib::sapling::tree< Value, Allocator >::get_parent(), gslib::sapling::tree< Value, Allocator >::node::next(), gslib::sapling::tree< Value, Allocator >::link::next, gslib::sapling::tree< Value, Allocator >::node::parent(), gslib::sapling::tree< Value, Allocator >::link::prev, gslib::sapling::tree< Value, Allocator >::node::prev(), and gslib::sapling::tree< Value, Allocator >::root_ptr().

Referenced by gslib::sapling::tree< Value, Allocator >::copy(), and gslib::sapling::tree< Value, Allocator >::root().

00546                                                      {
00547                 node* n;
00548                 if ( &end_ == ioWhere.cur_ ) {
00549                     BOOST_ASSERT( empty() );
00550                     n = new( allocator_.allocate( 1 ) ) node( v );
00551                     connect_root( n );
00552                 } else {
00553                     BOOST_ASSERT( root_ptr() != ioWhere.cur_ );
00554                     value_holder* w = ioWhere.cur_;
00555                     link* p = ioWhere.cur_->prev;
00556                     
00557                     n = new( allocator_.allocate( 1 ) ) node( v );
00558                     
00559                     p->next = n;
00560                     n->prev( p );
00561                     n->parent( get_parent( w ) );
00562                     n->next( w );
00563                     w->prev = n;
00564                 }       
00565                 return It( n );
00566             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
bool gslib::sapling::tree< Value, Allocator >::is_back link lnk  )  [inline, static, private]
 

Definition at line 263 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::node::end(), gslib::sapling::tree< Value, Allocator >::get_parent(), and gslib::sapling::tree< Value, Allocator >::node::prev().

00263                                              {
00264                 return lnk == get_parent( lnk )->end()->prev;
00265             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
bool gslib::sapling::tree< Value, Allocator >::is_begin link lnk  )  [inline, static, private]
 

Definition at line 267 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::node::begin(), and gslib::sapling::tree< Value, Allocator >::get_parent().

Referenced by gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::decrement(), and gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::decrement().

00267                                               {
00268                 return lnk == get_parent( lnk )->begin();
00269             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
bool gslib::sapling::tree< Value, Allocator >::is_end link lnk  )  [inline, static, private]
 

Definition at line 259 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::node::end(), and gslib::sapling::tree< Value, Allocator >::get_node().

Referenced by gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::increment(), and gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::increment().

00259                                             {
00260                 return lnk == get_node( lnk )->end();
00261             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
bool gslib::sapling::tree< Value, Allocator >::is_root const link lnk  )  [inline, static, private]
 

Definition at line 271 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::get_parent(), and gslib::sapling::tree< Value, Allocator >::is_root_end().

Referenced by gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::decrement(), and gslib::sapling::tree< Value, Allocator >::node::depth().

00271                                                    {
00272                 return is_root_end( get_parent( lnk ) );
00273             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
bool gslib::sapling::tree< Value, Allocator >::is_root_end const link lnk  )  [inline, static, private]
 

Definition at line 245 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::decrement(), gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::decrement(), gslib::sapling::tree< Value, Allocator >::node::depth(), gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::increment(), gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::increment(), and gslib::sapling::tree< Value, Allocator >::is_root().

00245                                                        {
00246                 return 0 == static_cast< const root_end* >( lnk )->parent;
00247             }

template<typename Value, typename Allocator = std::allocator< void >>
tree& gslib::sapling::tree< Value, Allocator >::operator= const tree< Value, Allocator > &  other  )  [inline]
 

Definition at line 684 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::swap().

00684                                                    {
00685                 tree deadbeef( other );
00686                 deadbeef.swap( *this );
00687                 return *this;
00688             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
const_reference gslib::sapling::tree< Value, Allocator >::root  )  const [inline]
 

Definition at line 630 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::root_ptr(), gslib::sapling::tree< Value, Allocator >::node::value(), and gslib::sapling::tree< Value, Allocator >::value_type.

00630                                          {
00631                 return root_ptr() ? root_ptr()->value() : *( ( value_type* ) 0 );
00632             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
reference gslib::sapling::tree< Value, Allocator >::root  )  [inline]
 

Definition at line 627 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::reference, gslib::sapling::tree< Value, Allocator >::root_ptr(), gslib::sapling::tree< Value, Allocator >::node::value(), and gslib::sapling::tree< Value, Allocator >::value_type.

Referenced by gslib::sapling::tree< Value, Allocator >::root(), and gslib::sapling::tree< Value, Allocator >::tree().

00627                              {
00628                 return root_ptr() ? root_ptr()->value() : *( ( value_type* ) 0 );
00629             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::root const_reference  v  )  [inline]
 

ルートが存在しない場合はルートを作成する。 すでにルートが存在する場合は v で上書きする。

Definition at line 617 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::empty(), gslib::sapling::tree< Value, Allocator >::end(), gslib::sapling::tree< Value, Allocator >::insert(), and gslib::sapling::tree< Value, Allocator >::root().

Referenced by gslib::sapling::tree< Value, Allocator >::tree().

00617                                            {
00618                 if ( empty() ) {
00619                     //  root 作成
00620                     insert( end(), v );
00621                 } else {
00622                     //  root 上書き
00623                     root() = v;
00624                 }
00625             }

Here is the call graph for this function:

template<typename Value, typename Allocator = std::allocator< void >>
const node* gslib::sapling::tree< Value, Allocator >::root_ptr  )  const [inline, private]
 

Definition at line 283 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::end_, gslib::sapling::tree< Value, Allocator >::link::next, and gslib::sapling::tree< Value, Allocator >::link::self.

00283                                          {
00284                 return static_cast< node* >( end_.next->self );
00285             }

template<typename Value, typename Allocator = std::allocator< void >>
node* gslib::sapling::tree< Value, Allocator >::root_ptr  )  [inline, private]
 

Definition at line 280 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::end_, gslib::sapling::tree< Value, Allocator >::link::next, and gslib::sapling::tree< Value, Allocator >::link::self.

Referenced by gslib::sapling::tree< Value, Allocator >::insert(), and gslib::sapling::tree< Value, Allocator >::root().

00280                              {
00281                 return static_cast< node* >( end_.next->self );
00282             }

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::swap tree< Value, Allocator > &  other  )  [inline]
 

Definition at line 656 of file tree.h.

References gslib::sapling::tree< Value, Allocator >::allocator_, gslib::sapling::tree< Value, Allocator >::connect_root(), gslib::sapling::tree< Value, Allocator >::end_, gslib::sapling::tree< Value, Allocator >::link::next, and gslib::sapling::tree< Value, Allocator >::link::prev.

Referenced by gslib::sapling::tree< Value, Allocator >::operator=().

00656                                      {
00657                 std::swap( allocator_, other.allocator_ );
00658                 if ( end_.prev == &end_ ) {
00659                     if ( other.end_.next != &other.end_ ) {
00660                         connect_root( other.end_.next );
00661                     }
00662                     other.end_.prev = &other.end_;
00663                     other.end_.next = &other.end_;
00664                 } else if ( other.end_.next == &other.end_ ) {
00665                     other.connect_root( end_.next );
00666                     end_.prev = &end_;
00667                     end_.next = &end_;
00668                 } else {
00669                     //  双方とも子を持っている
00670                     link* other_root = other.end_.next;
00671                     other.connect_root( end_.next );
00672                     connect_root( other_root );
00673                 }
00674             }

Here is the call graph for this function:


Member Data Documentation

template<typename Value, typename Allocator = std::allocator< void >>
const size_type gslib::sapling::tree< Value, Allocator >::allocation_size = sizeof ( node ) [static]
 

tree が一度にアロケーションする大きさ ( メモリプールなどに利用する )

Definition at line 289 of file tree.h.

template<typename Value, typename Allocator = std::allocator< void >>
allocator_type gslib::sapling::tree< Value, Allocator >::allocator_ [private]
 

Definition at line 277 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::swap().

template<typename Value, typename Allocator = std::allocator< void >>
root_end gslib::sapling::tree< Value, Allocator >::end_ [private]
 

Definition at line 278 of file tree.h.

Referenced by gslib::sapling::tree< Value, Allocator >::connect_root(), gslib::sapling::tree< Value, Allocator >::empty(), gslib::sapling::tree< Value, Allocator >::insert(), gslib::sapling::tree< Value, Allocator >::root_ptr(), and gslib::sapling::tree< Value, Allocator >::swap().

template<typename Value, typename Allocator = std::allocator< void >>
const size_type gslib::sapling::tree< Value, Allocator >::npos = ~0 [static]
 

Definition at line 94 of file tree.h.


The documentation for this class was generated from the following file:
Generated on Sat Nov 27 15:02:49 2004 for sapling by doxygen 1.3.6