Nvwa  1.1
Classes | Namespaces | Enumerations | Functions
tree.h File Reference

A generic tree class template and the traversal utilities. More...

#include <assert.h>
#include <iterator>
#include <memory>
#include <stack>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>
#include "_nvwa.h"
Include dependency graph for tree.h:

Go to the source code of this file.

Classes

struct  nvwa::smart_ptr< _Tp, _Policy >
 Declaration of policy class to generate the smart pointer type. More...
 
struct  nvwa::smart_ptr< _Tp, storage_policy::unique >
 Partial specialization to get std::unique_ptr. More...
 
struct  nvwa::smart_ptr< _Tp, storage_policy::shared >
 Partial specialization to get std::shared_ptr. More...
 
class  nvwa::tree< _Tp, _Policy >
 Basic tree (node) class template that owns all its children. More...
 
class  nvwa::breadth_first_iteration< _Tree >
 Iteration class for breadth-first traversal. More...
 
class  nvwa::depth_first_iteration< _Tree >
 Iteration class for depth-first traversal. More...
 
class  nvwa::in_order_iteration< _Tree >
 Iteration class for in-order traversal. More...
 

Namespaces

 nvwa
 Namespace of the nvwa project.
 

Enumerations

enum  nvwa::storage_policy { nvwa::storage_policy::unique, nvwa::storage_policy::shared }
 _Policy class for how to store members. More...
 

Functions

template<storage_policy _Policy = NVWA_TREE_DEFAULT_STORAGE_POLICY, typename _Tp >
tree< typename std::decay< _Tp >::type, _Policy >::tree_ptr nvwa::create_tree (_Tp &&value)
 Creates a tree without any children. More...
 
template<storage_policy _Policy = NVWA_TREE_DEFAULT_STORAGE_POLICY, typename _Tp , typename... Args>
tree< typename std::decay< _Tp >::type, _Policy >::tree_ptr nvwa::create_tree (_Tp &&value, Args &&... args)
 Creates a tree with children. More...
 

Detailed Description

A generic tree class template and the traversal utilities.

Using this file requires a C++11-compliant compiler.

Date
2017-04-09