5 //---------------------------------------------------------------------------
7 template < typename T, std::size_t N >
13 post_order_scan(root(), Destructor());
17 //---------------------------------------------------------------------------
19 template < typename T, std::size_t N >
20 typename NaryTree< T, N >::iterator
22 addChild(Node * parent, std::size_t childNumber, T value)
25 Node * newNode = new Node(value);
27 // Check that child has a parent
30 // Warn parent it has a new child with given number
31 parent->child(childNumber) = newNode;
33 // If child has no parent, it is a root:
34 // Check that there is no root yet
37 // Can't have two roots: throw
38 throw TreeRootAlreadyDefined();
45 return iterator(newNode);
48 //---------------------------------------------------------------------------