VLC 4.0.0-dev
Loading...
Searching...
No Matches

Public type-safe wrapper around mutable vlc_list, providing iterators, iteration functions and mutation on the list itself. More...

#include <vlc_list.hpp>

Inheritance diagram for vlc::list< NodeType >:
[legend]
Collaboration diagram for vlc::list< NodeType >:
[legend]

Public Types

using iterator = ::vlc::list_iterator< NodeType >
 
using const_iterator = ::vlc::list_const_iterator< NodeType >
 
using list_type = list_base< NodeType, vlc_list, list_iterator< NodeType >, list_const_iterator< NodeType > >
 
using reverse_iterator = std::conditional_t< is_reverse, list_reverse_iterator< NodeType, vlc_list >, list_iterator_base< NodeType, vlc_list > >
 
using const_reverse_iterator = std::conditional_t< is_reverse, list_reverse_iterator< NodeType, const vlc_list >, list_iterator_base< NodeType, const vlc_list > >
 
using reverse_list = list_base< NodeType, vlc_list, reverse_iterator, const_reverse_iterator >
 

Public Member Functions

 list (vlc_list &l, vlc_list NodeType::*node_ptr)
 Construct a vlc::list from an existing vlc_list.
 
template<typename IteratorType >
IteratorType erase (IteratorType it)
 
void push_front (NodeType &item)
 
void push_back (NodeType &item)
 
reverse_list as_reverse ()
 
iterator begin () const
 
iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator crbegin () const
 
const_reverse_iterator crend () const
 
bool empty () const
 

Protected Attributes

vlc_list_list
 
vlc_list NodeType::* _node_ptr
 

Static Protected Attributes

static bool constexpr is_reverse
 

Detailed Description

template<typename NodeType>
struct vlc::list< NodeType >

Public type-safe wrapper around mutable vlc_list, providing iterators, iteration functions and mutation on the list itself.

Template Parameters
NodeTypethe type of each node from the list

Member Typedef Documentation

◆ const_iterator

template<typename NodeType >
using vlc::list< NodeType >::const_iterator = ::vlc::list_const_iterator<NodeType>

◆ const_reverse_iterator

using vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::const_reverse_iterator = std::conditional_t<is_reverse, list_reverse_iterator<NodeType, const vlc_list >, list_iterator_base<NodeType, const vlc_list > >
inherited

◆ iterator

template<typename NodeType >
using vlc::list< NodeType >::iterator = ::vlc::list_iterator<NodeType>

◆ list_type

using vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::list_type = list_base<NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >
inherited

◆ reverse_iterator

using vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::reverse_iterator = std::conditional_t<is_reverse, list_reverse_iterator<NodeType, vlc_list >, list_iterator_base<NodeType, vlc_list > >
inherited

◆ reverse_list

using vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::reverse_list = list_base<NodeType, vlc_list , reverse_iterator, const_reverse_iterator>
inherited

Constructor & Destructor Documentation

◆ list()

template<typename NodeType >
vlc::list< NodeType >::list ( vlc_list< NodeType > &  l,
vlc_list< NodeType > NodeType::*  node_ptr 
)
inline

Construct a vlc::list from an existing vlc_list.

It is advised to use ::vlc::list::from() to get the correct wrapper directly in an inferenced way.

Member Function Documentation

◆ as_reverse()

reverse_list vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::as_reverse ( )
inlineinherited

◆ begin()

iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::begin ( ) const
inlineinherited

◆ cbegin()

const_iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::cbegin ( ) const
inlineinherited

◆ cend()

const_iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::cend ( ) const
inlineinherited

◆ crbegin()

const_reverse_iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::crbegin ( ) const
inlineinherited

◆ crend()

const_reverse_iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::crend ( ) const
inlineinherited

◆ empty()

bool vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::empty ( ) const
inlineinherited

◆ end()

iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::end ( ) const
inlineinherited

◆ erase()

template<typename NodeType >
template<typename IteratorType >
IteratorType vlc::list< NodeType >::erase ( IteratorType  it)
inline

References vlc_list_remove().

◆ push_back()

◆ push_front()

◆ rbegin()

reverse_iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::rbegin ( )
inlineinherited

◆ rend()

reverse_iterator vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::rend ( )
inlineinherited

Field Documentation

◆ _list

vlc_list & vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::_list
protectedinherited

◆ _node_ptr

vlc_list NodeType::* vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::_node_ptr
protectedinherited

◆ is_reverse

bool constexpr vlc::list_base< NodeType, vlc_list , list_iterator< NodeType > , list_const_iterator< NodeType > >::is_reverse
staticconstexprprotectedinherited

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