/**
\defgroup fcpptcontainertree fcppt.container.tree
\ingroup fcpptcontainer
\brief A tree data structure

<table id="toc">
<tr>
<td>

<ul>
	<li>\ref tree_introduction</li>
	<li>\ref tree_traversals</li>
</ul>

</td>
</tr>
</table>

\section tree_introduction Introduction
An <code>fcppt::container::tree::object<T></code> is a container modeling a
tree of arbitrary arity where nodes are labelled by objects of type
<code>T</code> and its children are of type
<code>fcppt::container::tree::object<T></code>. Internally, an
<code>fcppt::container::tree::object<T></code> holds a <code>std::list</code>
of <code>fcppt::container::tree::object<T></code>.

Here is an example:

\snippet container/tree_simple.cpp main

\section tree_traversals Iterators/Traversals

A tree can be used as a range by using <code>begin</code> and <code>end</code>
to iterate over its children.

There are also traversal classes that can be used to iterate over the whole
tree. Here is an example:

\snippet container/tree_traversal.cpp main

Aside from #fcppt::container::tree::pre_order pre_order , no other
traversals are implemented as of yet.
*/
