Spatial C++ Library
Generic Multi-Dimensional Containers and Spatial Operations
spatial::details::Kdtree_link< Key, Value > Struct Template Reference

Define the link type for a Kdtree that contains the value member. More...

#include <spatial_node.hpp>

Inherits spatial::details::Node< Kdtree_link< Key, Value > >.

Public Types

typedef Key key_type
 The link to the key type. More...
 
typedef Value value_type
 The link to the value type. More...
 
typedef Kdtree_link< Key, Value > link_type
 The link to the node type, which is the node itself, since link information are also contained in this node. More...
 
typedef link_typelink_ptr
 The link pointer which is often used, has a dedicated type. More...
 
typedef const link_typeconst_link_ptr
 The constant link pointer which is often used, has a dedicated type. More...
 
typedef Node< link_type > * node_ptr
 The node pointer type deduced from the mode. More...
 
typedef const Node< link_type > * const_node_ptr
 The constant node pointer deduced from the mode. More...
 
typedef strict_invariant_tag invariant_category
 The category of invariant associated with this mode. More...
 
- Public Types inherited from spatial::details::Node< Kdtree_link< Key, Value > >
typedef Kdtree_link< Key, Value > link_type
 The link type that indicate how to reach the key and/or the value from the node. More...
 

Public Member Functions

 Kdtree_link ()
 Default constructor. More...
 

Public Attributes

Value value
 The value of the node, required by the Link Mode concept. More...
 
- Public Attributes inherited from spatial::details::Node< Kdtree_link< Key, Value > >
Nodeparent
 A pointer to the parent of the current node. More...
 
Nodeleft
 A pointer to the left child node of the current node. More...
 
Noderight
 A pointer to the right child node of the current node. More...
 

Private Member Functions

Kdtree_link< Key, Value > & operator= (const Kdtree_link< Key, Value > &)
 The link_type is a non-assignable type, because the key it contains is a constant type. More...
 

Detailed Description

template<typename Key, typename Value>
struct spatial::details::Kdtree_link< Key, Value >

Define the link type for a Kdtree that contains the value member.

This type also contains the linking information, so it is a model of the Link Mode concept.

Template Parameters
KeyThe key type that is held by the Kdtree_link.
ValueThe value type that is held by the Kdtree_link.

Definition at line 242 of file spatial_node.hpp.

Member Typedef Documentation

template<typename Key, typename Value>
typedef const link_type* spatial::details::Kdtree_link< Key, Value >::const_link_ptr

The constant link pointer which is often used, has a dedicated type.

Definition at line 254 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef const Node<link_type>* spatial::details::Kdtree_link< Key, Value >::const_node_ptr

The constant node pointer deduced from the mode.

Definition at line 258 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef strict_invariant_tag spatial::details::Kdtree_link< Key, Value >::invariant_category

The category of invariant associated with this mode.

Definition at line 260 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Key spatial::details::Kdtree_link< Key, Value >::key_type

The link to the key type.

Definition at line 245 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef link_type* spatial::details::Kdtree_link< Key, Value >::link_ptr

The link pointer which is often used, has a dedicated type.

Definition at line 252 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Kdtree_link<Key, Value> spatial::details::Kdtree_link< Key, Value >::link_type

The link to the node type, which is the node itself, since link information are also contained in this node.

Definition at line 250 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Node<link_type>* spatial::details::Kdtree_link< Key, Value >::node_ptr

The node pointer type deduced from the mode.

Definition at line 256 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Value spatial::details::Kdtree_link< Key, Value >::value_type

The link to the value type.

Definition at line 247 of file spatial_node.hpp.

Constructor & Destructor Documentation

template<typename Key, typename Value>
spatial::details::Kdtree_link< Key, Value >::Kdtree_link ( )

Default constructor.

Definition at line 263 of file spatial_node.hpp.

Member Function Documentation

template<typename Key, typename Value>
Kdtree_link<Key, Value>& spatial::details::Kdtree_link< Key, Value >::operator= ( const Kdtree_link< Key, Value > &  )
private

The link_type is a non-assignable type, because the key it contains is a constant type.

Most algorthims manipulate a pointer to this element rather than this element directly. Note that copy-construction is permitted.

Member Data Documentation

template<typename Key, typename Value>
Value spatial::details::Kdtree_link< Key, Value >::value

The value of the node, required by the Link Mode concept.

In *-map containers, the value is necessarily a pair, with the first member being a key, and the second member being the mapped type. In *-set containers, the value and the key are one and the same thing.

In any case the value is always constant for keys, and therefore this type cannot be used in assignment operations, since keys cannot be changed. Most algorithm only use a pointer to the link_type.

Definition at line 276 of file spatial_node.hpp.


The documentation for this struct was generated from the following file: