Maps SDK for C++ 1.0.0
Loading...
Searching...
No Matches
gem::List< ItemType, typename > Class Template Reference

List object. More...

Inheritance diagram for gem::List< ItemType, typename >:
Collaboration diagram for gem::List< ItemType, typename >:

Public Member Functions

 List ()
 Create an empty list object.
 List (const List &list)=default
 Default copy constructor.
 List (List &&list)=default
 Default move constructor noexcept is deduced.
 List (std::initializer_list< ItemType > ilist)
 Construct from initializer list.
 List (const Std &list)
 Construct from const std::vector.
 List (Std &&list)
 Construct from std::vector.
Listoperator= (const List &list)=default
 Default copy assignment.
Listoperator= (List &&list)=default
 Default move assignment noexcept is deduced.
Listoperator= (std::initializer_list< ItemType > ilist)
 Copy from initializer list.
Listoperator= (const Std &list)
 Copy from const std::vector.
Listoperator= (Std &&list)
 Move from std::vector.
bool operator== (const List &list) const
 Comparison equal.
bool operator!= (const List &list) const
 Comparison not equal.
template<typename TPredicate>
bool equals (const List &list, TPredicate pred) const
 Comparison equal.
void assign (typename Std::size_type count, const ItemType &value)
 std::vector interface Assign count and value
template<typename It>
void assign (It first, It last)
 Assign iterator first, iterator last.
Std::reference at_nc (typename Std::size_type pos)
 non-const at()
Std::const_reference at (typename Std::size_type pos) const
 const at()
Std::const_reference operator[] (typename Std::size_type pos) const
 const index operator
Std::reference front_nc ()
 non-const front()
Std::const_reference front () const
 const front()
Std::reference back_nc ()
 non-const back()
Std::const_reference back () const
 const back()
Std::iterator begin_nc () noexcept
 non-const begin()
Std::const_iterator begin () const noexcept
 const begin()
Std::iterator end_nc () noexcept
 non-const end()
Std::const_iterator end () const noexcept
 const end()
Std::reverse_iterator rbegin_nc () noexcept
 non-const rbegin()
Std::const_reverse_iterator rbegin () const noexcept
 const rbegin()
Std::reverse_iterator rend_nc () noexcept
 non-const rend()
Std::const_reverse_iterator rend () const noexcept
 const rend()
bool empty () const noexcept
 empty()
Std::size_type size () const noexcept
 size()
Std::size_type max_size () const noexcept
 max_size()
void reserve (typename Std::size_type sz)
 reserve()
Std::size_type capacity () const noexcept
 capacity()
void clear () noexcept
 clear()
Std::iterator insert (typename Std::const_iterator pos, const ItemType &value)
 insert
Std::iterator insert (typename Std::const_iterator pos, ItemType &&value)
 insert
Std::iterator insert (typename Std::const_iterator pos, typename Std::size_type count, const ItemType &value)
 insert
Std::iterator insert (typename Std::const_iterator pos, typename Std::size_type count, ItemType &&value)
 insert
template<typename It>
Std::iterator insert (typename Std::const_iterator pos, It first, It last)
 insert
Std::iterator insert (typename Std::const_iterator pos, std::initializer_list< ItemType > ilist)
 insert
template<typename ... Args>
Std::iterator emplace (typename Std::const_iterator pos, Args &&... args)
 emplace
Std::iterator erase (typename Std::const_iterator pos)
 erase
Std::iterator erase (typename Std::const_iterator first, typename Std::const_iterator last)
 erase
void push_back (const ItemType &value)
 push_back const value
void push_back (ItemType &&value)
 push_back
template<typename ... Args>
void emplace_back (Args &&... args)
 emplace_back
void pop_back ()
 pop_back
void resize (typename Std::size_type count)
 resize
void resize (typename Std::size_type count, const ItemType &value)
 resize
void resize (typename Std::size_type count, ItemType &&value)
 resize
void swap (Std &other) noexcept
 swap
void swap (List &other) noexcept
 swap
StdtoStd ()
 Conversion to std::vector from const object.
const StdtoStd () const
 Conversion to const std::vector from const object.
const StdtoCStd ()
 Conversion to const std::vector container.

Protected Types

using Base = ApiObject<IList<typename ItemType::ApiType>, true>
 typedef for the base class
using Api = IList<typename ItemType::ApiType>
 typedef for the Api interface
using Std = std::vector<ItemType>
 typedef for the std::vector

Detailed Description

template<typename ItemType, typename = void>
class gem::List< ItemType, typename >

List object.

Implements share-read / copy-on-write Api object over IList

Constructor & Destructor Documentation

◆ List() [1/5]

template<typename ItemType, typename = void>
gem::List< ItemType, typename >::List ( const List< ItemType, typename > & list)
default

Default copy constructor.

Parameters
[in]listList object to copy

◆ List() [2/5]

template<typename ItemType, typename = void>
gem::List< ItemType, typename >::List ( List< ItemType, typename > && list)
default

Default move constructor noexcept is deduced.

Parameters
[in]listList object to move

◆ List() [3/5]

template<typename ItemType, typename = void>
gem::List< ItemType, typename >::List ( std::initializer_list< ItemType > ilist)
inline

Construct from initializer list.

Parameters
[in]ilistInitializer list

◆ List() [4/5]

template<typename ItemType, typename = void>
gem::List< ItemType, typename >::List ( const Std & list)
inline

Construct from const std::vector.

Parameters
[in]listConst std::vector

◆ List() [5/5]

template<typename ItemType, typename = void>
gem::List< ItemType, typename >::List ( Std && list)
inline

Construct from std::vector.

Parameters
[in]liststd::vector

Member Function Documentation

◆ assign() [1/2]

template<typename ItemType, typename = void>
template<typename It>
void gem::List< ItemType, typename >::assign ( It first,
It last )
inline

Assign iterator first, iterator last.

Parameters
[in]firstIterator to the first element
[in]lastIterator to the last element
Template Parameters
ItIterator type

◆ assign() [2/2]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::assign ( typename Std::size_type count,
const ItemType & value )
inline

std::vector interface Assign count and value

Parameters
[in]countNumber of elements to assign
[in]valueValue to assign

◆ at()

template<typename ItemType, typename = void>
Std::const_reference gem::List< ItemType, typename >::at ( typename Std::size_type pos) const
inline

const at()

Parameters
[in]posPosition of the element
Returns
Reference to the element

◆ at_nc()

template<typename ItemType, typename = void>
Std::reference gem::List< ItemType, typename >::at_nc ( typename Std::size_type pos)
inline

non-const at()

Parameters
[in]posPosition of the element
Returns
Reference to the element

◆ back()

template<typename ItemType, typename = void>
Std::const_reference gem::List< ItemType, typename >::back ( ) const
inline

const back()

Returns
Reference to the back element

◆ back_nc()

template<typename ItemType, typename = void>
Std::reference gem::List< ItemType, typename >::back_nc ( )
inline

non-const back()

Returns
Reference to the back element

◆ begin()

template<typename ItemType, typename = void>
Std::const_iterator gem::List< ItemType, typename >::begin ( ) const
inlinenoexcept

const begin()

Returns
Iterator to the first element

◆ begin_nc()

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::begin_nc ( )
inlinenoexcept

non-const begin()

Returns
Iterator to the first element

◆ capacity()

template<typename ItemType, typename = void>
Std::size_type gem::List< ItemType, typename >::capacity ( ) const
inlinenoexcept

capacity()

Returns
Number of elements the list can hold without reallocation

◆ clear()

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::clear ( )
inlinenoexcept

clear()

Removes all elements from the list

◆ emplace()

template<typename ItemType, typename = void>
template<typename ... Args>
Std::iterator gem::List< ItemType, typename >::emplace ( typename Std::const_iterator pos,
Args &&... args )
inline

emplace

Parameters
[in]posIterator to the position to insert
[in]argsArguments to forward to the constructor
Template Parameters
ArgsArguments type
Returns
Iterator to the inserted element

◆ emplace_back()

template<typename ItemType, typename = void>
template<typename ... Args>
void gem::List< ItemType, typename >::emplace_back ( Args &&... args)
inline

emplace_back

Parameters
[in]argsArguments to forward to the constructor
Template Parameters
ArgsArguments type

Adds a new element at the end of the list

◆ empty()

template<typename ItemType, typename = void>
bool gem::List< ItemType, typename >::empty ( ) const
inlinenoexcept

empty()

Returns
True if the list is empty, false otherwise

◆ end()

template<typename ItemType, typename = void>
Std::const_iterator gem::List< ItemType, typename >::end ( ) const
inlinenoexcept

const end()

Returns
Iterator to the end element

◆ end_nc()

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::end_nc ( )
inlinenoexcept

non-const end()

Returns
Iterator to the end element

◆ equals()

template<typename ItemType, typename = void>
template<typename TPredicate>
bool gem::List< ItemType, typename >::equals ( const List< ItemType, typename > & list,
TPredicate pred ) const
inline

Comparison equal.

Parameters
[in]listList object to compare
[in]predThe predicate used in comparing
Returns
True if the lists are equal, false otherwise

◆ erase() [1/2]

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::erase ( typename Std::const_iterator first,
typename Std::const_iterator last )
inline

erase

Parameters
[in]firstIterator to the first element to erase
[in]lastIterator to the last element to erase
Returns
Iterator to the element following the last removed element

Erases the elements in the range [first, last)

◆ erase() [2/2]

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::erase ( typename Std::const_iterator pos)
inline

erase

Parameters
[in]posIterator to the element to erase
Returns
Iterator to the element following the last removed element

◆ front()

template<typename ItemType, typename = void>
Std::const_reference gem::List< ItemType, typename >::front ( ) const
inline

const front()

Returns
Reference to the front element

◆ front_nc()

template<typename ItemType, typename = void>
Std::reference gem::List< ItemType, typename >::front_nc ( )
inline

non-const front()

Returns
Reference to the front element

◆ insert() [1/6]

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::insert ( typename Std::const_iterator pos,
const ItemType & value )
inline

insert

Parameters
[in]posIterator to the position to insert
[in]valueValue to insert
Returns
Iterator to the inserted element

◆ insert() [2/6]

template<typename ItemType, typename = void>
template<typename It>
Std::iterator gem::List< ItemType, typename >::insert ( typename Std::const_iterator pos,
It first,
It last )
inline

insert

Parameters
[in]posIterator to the position to insert
[in]firstIterator to the first element to insert
[in]lastIterator to the last element to insert
Template Parameters
ItIterator type
Returns
Iterator to the first inserted element

◆ insert() [3/6]

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::insert ( typename Std::const_iterator pos,
ItemType && value )
inline

insert

Parameters
[in]posIterator to the position to insert
[in]valueValue to insert
Returns
Iterator to the inserted element

◆ insert() [4/6]

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::insert ( typename Std::const_iterator pos,
std::initializer_list< ItemType > ilist )
inline

insert

Parameters
[in]posIterator to the position to insert
[in]ilistInitializer list
Returns
Iterator to the first inserted element

◆ insert() [5/6]

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::insert ( typename Std::const_iterator pos,
typename Std::size_type count,
const ItemType & value )
inline

insert

Parameters
[in]posIterator to the position to insert
[in]countNumber of elements to insert
[in]valueValue to insert
Returns
Iterator to the first inserted element

◆ insert() [6/6]

template<typename ItemType, typename = void>
Std::iterator gem::List< ItemType, typename >::insert ( typename Std::const_iterator pos,
typename Std::size_type count,
ItemType && value )
inline

insert

Parameters
[in]posIterator to the position to insert
[in]countNumber of elements to insert
[in]valueValue to insert
Returns
Iterator to the first inserted element

◆ max_size()

template<typename ItemType, typename = void>
Std::size_type gem::List< ItemType, typename >::max_size ( ) const
inlinenoexcept

max_size()

Returns
Maximum number of elements the list can hold

◆ operator!=()

template<typename ItemType, typename = void>
bool gem::List< ItemType, typename >::operator!= ( const List< ItemType, typename > & list) const
inline

Comparison not equal.

Parameters
[in]listList object to compare
Returns
True if the lists are not equal, false otherwise

◆ operator=() [1/5]

template<typename ItemType, typename = void>
List & gem::List< ItemType, typename >::operator= ( const List< ItemType, typename > & list)
default

Default copy assignment.

Parameters
[in]listList object to copy
Returns
Reference to this object

◆ operator=() [2/5]

template<typename ItemType, typename = void>
List & gem::List< ItemType, typename >::operator= ( const Std & list)
inline

Copy from const std::vector.

Parameters
[in]listConst std::vector
Returns
Reference to this object

◆ operator=() [3/5]

template<typename ItemType, typename = void>
List & gem::List< ItemType, typename >::operator= ( List< ItemType, typename > && list)
default

Default move assignment noexcept is deduced.

Parameters
[in]listList object to move
Returns
Reference to this object

◆ operator=() [4/5]

template<typename ItemType, typename = void>
List & gem::List< ItemType, typename >::operator= ( Std && list)
inline

Move from std::vector.

Parameters
[in]liststd::vector
Returns
Reference to this object

◆ operator=() [5/5]

template<typename ItemType, typename = void>
List & gem::List< ItemType, typename >::operator= ( std::initializer_list< ItemType > ilist)
inline

Copy from initializer list.

Parameters
[in]ilistInitializer list
Returns
Reference to this object

◆ operator==()

template<typename ItemType, typename = void>
bool gem::List< ItemType, typename >::operator== ( const List< ItemType, typename > & list) const
inline

Comparison equal.

Parameters
[in]listList object to compare
Returns
True if the lists are equal, false otherwise

◆ operator[]()

template<typename ItemType, typename = void>
Std::const_reference gem::List< ItemType, typename >::operator[] ( typename Std::size_type pos) const
inline

const index operator

Parameters
[in]posPosition of the element
Returns
Reference to the element

◆ pop_back()

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::pop_back ( )
inline

pop_back

Removes the last element of the list

◆ push_back() [1/2]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::push_back ( const ItemType & value)
inline

push_back const value

Parameters
[in]valueValue to push back (read-only)

Adds a new element at the end of the list

◆ push_back() [2/2]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::push_back ( ItemType && value)
inline

push_back

Parameters
[in]valueValue to push back

Adds a new element at the end of the list

◆ rbegin()

template<typename ItemType, typename = void>
Std::const_reverse_iterator gem::List< ItemType, typename >::rbegin ( ) const
inlinenoexcept

const rbegin()

Returns
Reverse iterator to the first element

◆ rbegin_nc()

template<typename ItemType, typename = void>
Std::reverse_iterator gem::List< ItemType, typename >::rbegin_nc ( )
inlinenoexcept

non-const rbegin()

Returns
Reverse iterator to the first element

◆ rend()

template<typename ItemType, typename = void>
Std::const_reverse_iterator gem::List< ItemType, typename >::rend ( ) const
inlinenoexcept

const rend()

Returns
Reverse iterator to the end element

◆ rend_nc()

template<typename ItemType, typename = void>
Std::reverse_iterator gem::List< ItemType, typename >::rend_nc ( )
inlinenoexcept

non-const rend()

Returns
Reverse iterator to the end element

◆ reserve()

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::reserve ( typename Std::size_type sz)
inline

reserve()

Parameters
[in]szNumber of elements to reserve

◆ resize() [1/3]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::resize ( typename Std::size_type count)
inline

resize

Parameters
[in]countNew size of the list

Resizes the list to contain count elements

◆ resize() [2/3]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::resize ( typename Std::size_type count,
const ItemType & value )
inline

resize

Parameters
[in]countNew size of the list
[in]valueValue to insert

◆ resize() [3/3]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::resize ( typename Std::size_type count,
ItemType && value )
inline

resize

Parameters
[in]countNew size of the list
[in]valueValue to insert

◆ size()

template<typename ItemType, typename = void>
Std::size_type gem::List< ItemType, typename >::size ( ) const
inlinenoexcept

size()

Returns
Number of elements in the list

◆ swap() [1/2]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::swap ( List< ItemType, typename > & other)
inlinenoexcept

swap

Parameters
[in]otherList to swap with

Swaps the contents of the list with the contents of other

◆ swap() [2/2]

template<typename ItemType, typename = void>
void gem::List< ItemType, typename >::swap ( Std & other)
inlinenoexcept

swap

Parameters
[in]otherList to swap with

Swaps the contents of the list with the contents of other

◆ toCStd()

template<typename ItemType, typename = void>
const Std & gem::List< ItemType, typename >::toCStd ( )
inline

Conversion to const std::vector container.

Returns
Reference to the std::vector container

This method is const, and can be used to get a const reference to the std::vector container

◆ toStd() [1/2]

template<typename ItemType, typename = void>
Std & gem::List< ItemType, typename >::toStd ( )
inline

Conversion to std::vector from const object.

Returns
Reference to the std::vector container

◆ toStd() [2/2]

template<typename ItemType, typename = void>
const Std & gem::List< ItemType, typename >::toStd ( ) const
inline

Conversion to const std::vector from const object.

Returns
Reference to the std::vector container

This method is const, and can be used to get a const reference to the std::vector container