Kanzi 4.1.0
kanzi::indexed_list< T >::sorting_type Class Reference

Sorting value type. More...

#include <kanzi/core/cpp/indexed_list.hpp>

Public Member Functions

size_t getIndexInSortedOrder () const
 Gets the referred index.
 
size_t getReferredIndex () const
 Gets the referred index.
 
Toperator* ()
 Dereference operator.
 
const Toperator* () const
 Const dereference operator.
 
sorting_typeoperator= (const sorting_type &other)
 Copy operator.
 
sorting_typeoperator= (sorting_type &&other)
 Move operator.
 
void setHost (indexed_list &host)
 Replace the host.
 
void setReferredIndex (size_t index)
 Sets the index referred to.
 
 sorting_type ()=default
 Default constructor.
 
 sorting_type (const sorting_type &other)=default
 Copy constructor.
 
 sorting_type (indexed_list &host, size_t indexInSortingList, size_t referredIndex)
 Constructor.
 
 sorting_type (sorting_type &&other)=default
 Move constructor.
 

Protected Attributes

indexed_listm_host
 Pointer to host.
 
size_t m_indexInSortingList
 Index of this element in the sorting list itself.
 
size_t m_referredIndex
 Referred element.
 

Detailed Description

template<typename T>
class kanzi::indexed_list< T >::sorting_type

Sorting value type.

Constructor & Destructor Documentation

◆ sorting_type() [1/4]

template<typename T >
kanzi::indexed_list< T >::sorting_type::sorting_type ( )
default

Default constructor.

◆ sorting_type() [2/4]

template<typename T >
kanzi::indexed_list< T >::sorting_type::sorting_type ( indexed_list & host,
size_t indexInSortingList,
size_t referredIndex )
inline

Constructor.

Parameters
hostHost container.
indexInSortingListIndex in the sorting list.
referredIndexReferred index for the actual sorting.

◆ sorting_type() [3/4]

template<typename T >
kanzi::indexed_list< T >::sorting_type::sorting_type ( const sorting_type & other)
default

Copy constructor.

Maintains indexing state both in sorting and element list.

Parameters
otherSource object.

◆ sorting_type() [4/4]

template<typename T >
kanzi::indexed_list< T >::sorting_type::sorting_type ( sorting_type && other)
default

Move constructor.

Maintains indexing state both in sorting and element list.

Parameters
otherSource object.

Member Function Documentation

◆ operator=() [1/2]

template<typename T >
sorting_type & kanzi::indexed_list< T >::sorting_type::operator= ( const sorting_type & other)
inline

Copy operator.

Maintains indexing state both in sorting and element list.

Parameters
otherSource object.

◆ operator=() [2/2]

template<typename T >
sorting_type & kanzi::indexed_list< T >::sorting_type::operator= ( sorting_type && other)
inline

Move operator.

Maintains indexing state both in sorting and element list.

Parameters
otherSource object.

◆ setHost()

template<typename T >
void kanzi::indexed_list< T >::sorting_type::setHost ( indexed_list & host)
inline

Replace the host.

Used when the whole indexed list has been copied or moved.

Parameters
hostNew host.

◆ getIndexInSortedOrder()

template<typename T >
size_t kanzi::indexed_list< T >::sorting_type::getIndexInSortedOrder ( ) const
inline

Gets the referred index.

Returns
Referred index.

◆ getReferredIndex()

template<typename T >
size_t kanzi::indexed_list< T >::sorting_type::getReferredIndex ( ) const
inline

Gets the referred index.

Returns
Referred index.

◆ setReferredIndex()

template<typename T >
void kanzi::indexed_list< T >::sorting_type::setReferredIndex ( size_t index)
inline

Sets the index referred to.

Parameters
indexNew index.

◆ operator*() [1/2]

template<typename T >
T & kanzi::indexed_list< T >::sorting_type::operator* ( )
inline

Dereference operator.

Returns
Reference to contained value.

◆ operator*() [2/2]

template<typename T >
const T & kanzi::indexed_list< T >::sorting_type::operator* ( ) const
inline

Const dereference operator.

Returns
Const reference to contained value.

Member Data Documentation

◆ m_host

template<typename T >
indexed_list* kanzi::indexed_list< T >::sorting_type::m_host
protected

Pointer to host.

This pointer being needed may seem crazy, but the sorting process maintains order by calling move() on the sorted elements, so the pointer to the structure itself is required to maintain state.

◆ m_indexInSortingList

template<typename T >
size_t kanzi::indexed_list< T >::sorting_type::m_indexInSortingList
protected

Index of this element in the sorting list itself.

Required to maintain correct back referencing from the value list.

◆ m_referredIndex

template<typename T >
size_t kanzi::indexed_list< T >::sorting_type::m_referredIndex
protected

Referred element.


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