Public Types | Public Member Functions
efl::eina::ptr_list< T, CloneAllocator > Class Template Reference

List class. More...

Public Types

typedef container_value_type< T >::type value_type
 The type of each element. More...
 
typedef value_typereference
 Type for a reference to an element. More...
 
typedef value_type const & const_reference
 Type for a constant reference to an element. More...
 
typedef _ptr_list_iterator< value_type const > const_iterator
 Type for a iterator for this container. More...
 
typedef _ptr_list_iterator< value_typeiterator
 Type for a constant iterator for this container. More...
 
typedef value_typepointer
 Type for a pointer to an element. More...
 
typedef value_type const * const_pointer
 Type for a constant pointer for an element. More...
 
typedef std::size_t size_type
 Type for size information. More...
 
typedef std::ptrdiff_t difference_type
 Type to represent the distance between two iterators. More...
 
typedef CloneAllocator clone_allocator_type
 
typedef std::reverse_iterator< iteratorreverse_iterator
 Type for the clone allocator. More...
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 Type for reverse iterator for this container. More...
 
typedef Eina_Listnative_handle_type
 
typedef std::unique_ptr< value_type, clone_allocator_deleter< clone_allocator_type > > _unique_ptr
 

Public Member Functions

 ptr_list ()
 Default constructor. More...
 
 ptr_list (Eina_List *handle)
 
 ptr_list (clone_allocator_type alloc)
 
ptr_list< T, CloneAllocator > & operator= (ptr_list< T, CloneAllocator > &&other)=default
 
 ptr_list (ptr_list< T, CloneAllocator > &&other)=default
 
 ptr_list (size_type n, const_reference t)
 Construct an list object with n copies of t. More...
 
template<typename InputIterator >
 ptr_list (InputIterator i, InputIterator const &j, clone_allocator_type const &alloc=clone_allocator_type(), typename eina::enable_if<!eina::is_integral< InputIterator >::value >::type *=0)
 Create a list with elements from the given range. More...
 
 ptr_list (ptr_list< T, CloneAllocator > const &other)
 Copy constructor. More...
 
template<typename CloneAllocator1 >
 ptr_list (ptr_list< T, CloneAllocator1 >const &other)
 Creates a copy of a ptr_list with a different clone allocator. More...
 
 ~ptr_list ()
 Destructor. More...
 
ptr_list< T, CloneAllocator > & operator= (ptr_list< T, CloneAllocator >const &other)
 Replace the current content with the cotent of another list. More...
 
void clear ()
 Remove all the elements of the list.
 
std::size_t size () const
 Get the current size of the list. More...
 
bool empty () const
 Check if the list is empty. More...
 
clone_allocator_type get_clone_allocator () const
 Get the clone allocator of the list. More...
 
void push_back (const_reference a)
 Add a copy of the given element at the end of the list. More...
 
void push_back (pointer p)
 Add the object pointed by p as a element at the end of the list. More...
 
template<typename Deleter >
void push_back (std::unique_ptr< T, Deleter > &p)
 Add the object pointed by p as a element at the end of the list. More...
 
void push_front (const_reference a)
 Add a copy of the given element at the beginning of the list. More...
 
void push_front (pointer p)
 Add the object pointed by p as a element at the beginning of the list. More...
 
template<typename Deleter >
void push_front (std::unique_ptr< T, Deleter > &p)
 Add the object pointed by p as a element at the beginning of the list. More...
 
void pop_back ()
 Remove the last element of the list.
 
void pop_front ()
 Remove the first element of the list.
 
iterator insert (iterator i, value_type const &t)
 Insert a copy of the given element at the given position. More...
 
iterator insert (iterator i, pointer pv)
 Insert the object pointed by pv as a element at the given position. More...
 
template<typename Deleter >
iterator insert (iterator i, std::unique_ptr< value_type, Deleter > &p)
 Insert the object pointed by p as a element at the given position. More...
 
iterator insert (iterator i, size_t n, value_type const &t)
 Insert n copies of t at the given position. More...
 
iterator insert (iterator i, size_t n, pointer p)
 Insert the object pointed by p and n-1 copies of it as elements at the given position. More...
 
template<typename InputIterator >
iterator insert (iterator p, InputIterator i, InputIterator j, typename eina::enable_if<!eina::is_integral< InputIterator >::value >::type *=0)
 Insert the elements between the given range at the given position. More...
 
iterator erase (iterator q)
 Remove the element at the given position. More...
 
iterator erase (iterator i, iterator j)
 Remove the elements between the given range. More...
 
template<typename InputIterator >
void assign (InputIterator i, InputIterator j, typename eina::enable_if<!eina::is_integral< InputIterator >::value >::type *=0)
 Replace the content of the list by the elements in the given range. More...
 
void assign (size_type n, value_type const &t)
 Replace the content of the list by n copies t. More...
 
value_typeback ()
 Get a reference to the last element. More...
 
value_type const & back () const
 Get a constant reference to the last element. More...
 
value_typefront ()
 Get a reference to the first element. More...
 
value_type const & front () const
 Get a constant reference to the first element. More...
 
const_iterator begin () const
 Get a constant iterator pointing to the first element of the list. More...
 
const_iterator end () const
 Get a constant iterator to the position following the last element of the list. More...
 
iterator begin ()
 Get an iterator pointing to the first element of the list. More...
 
iterator end ()
 Get an iterator to the position following the last element of the list. More...
 
const_reverse_iterator rbegin () const
 Get a constant reverse iterator pointing to the reverse begin of the list. More...
 
const_reverse_iterator rend () const
 Get a constant reverse iterator pointing to the reverse end of the list. More...
 
reverse_iterator rbegin ()
 Get a reverse iterator pointing to the reverse begin of the list. More...
 
reverse_iterator rend ()
 Get a reverse iterator pointing to the reverse end of the list. More...
 
const_iterator cbegin () const
 Get a constant iterator pointing to the first element of the list. More...
 
const_iterator cend () const
 Get a constant iterator to the position following the last element of the list. More...
 
const_reverse_iterator crbegin () const
 Get a constant reverse iterator pointing to the reverse begin of the list. More...
 
const_reverse_iterator crend () const
 Get a constant reverse iterator pointing to the reverse end of the list. More...
 
eina::iterator< value_typeibegin ()
 Get an eina::iterator pointing to the first element of the list. More...
 
eina::iterator< value_typeiend ()
 Get an eina::iterator to the position following the last element of the list. More...
 
eina::iterator< T const > ibegin () const
 Get a constant eina::iterator pointing to the first element of the list. More...
 
eina::iterator< T const > iend () const
 Get an constant eina::iterator to the position following the last element of the list. More...
 
eina::iterator< T const > cibegin () const
 Get an eina::iterator pointing to the first element of the list. More...
 
eina::iterator< T const > ciend () const
 Get an constant eina::iterator to the position following the last element of the list. More...
 
void swap (ptr_list< T, CloneAllocator > &other)
 Swap content between two lists. More...
 
size_type max_size () const
 Get the maximum number of elements ptr_list can hold. More...
 
Eina_Listrelease_native_handle ()
 
Eina_Listnative_handle ()
 Get a handle for the wrapped Eina_List. More...
 
Eina_List const * native_handle () const
 Get a constant handle for the wrapped Eina_List. More...
 
eina::accessor< T const > accessor () const
 Get a constant eina::accessor for the list. More...
 
eina::accessor< value_typeaccessor ()
 Get a eina::accessor for the list. More...
 

Additional Inherited Members

- Protected Types inherited from efl::eina::_ptr_list_common_base< T, CloneAllocator >
typedef remove_cv< typename std::remove_reference< T >::type >::type value_type
 
typedef CloneAllocator clone_allocator_type
 Type for the clone allocator. More...
 
- Protected Member Functions inherited from efl::eina::_ptr_list_common_base< T, CloneAllocator >
 _ptr_list_common_base (CloneAllocator clone_allocator)
 Creates an list with the given clone allocator.
 
 _ptr_list_common_base (Eina_List *_list)
 Create a new object from a handle to a native Eina_List. More...
 
_ptr_list_common_base< T, CloneAllocator > & operator= (_ptr_list_common_base< T, CloneAllocator > &&other)=default
 
 _ptr_list_common_base (_ptr_list_common_base< T, CloneAllocator > &&other)=default
 
 _ptr_list_common_base ()
 Default constructor. More...
 
CloneAllocator & _get_clone_allocator ()
 
CloneAllocator const & _get_clone_allocator () const
 
void _delete_clone (value_type const *p)
 
value_type * _new_clone (typename container_value_type< T >::type const &a)
 
- Protected Attributes inherited from efl::eina::_ptr_list_common_base< T, CloneAllocator >
_ptr_list_impl _impl
 

Detailed Description

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
class efl::eina::ptr_list< T, CloneAllocator >

List class.

It provides an OOP interface to the Eina_List functions, and automatically take care of allocating and deallocating resources using the RAII programming idiom.

It also provides additional member functions to facilitate the access to the list content, much like a STL list.

Member Typedef Documentation

◆ value_type

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef container_value_type<T>::type efl::eina::ptr_list< T, CloneAllocator >::value_type

The type of each element.

◆ reference

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef value_type& efl::eina::ptr_list< T, CloneAllocator >::reference

Type for a reference to an element.

◆ const_reference

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef value_type const& efl::eina::ptr_list< T, CloneAllocator >::const_reference

Type for a constant reference to an element.

◆ const_iterator

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef _ptr_list_iterator<value_type const> efl::eina::ptr_list< T, CloneAllocator >::const_iterator

Type for a iterator for this container.

◆ iterator

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef _ptr_list_iterator<value_type> efl::eina::ptr_list< T, CloneAllocator >::iterator

Type for a constant iterator for this container.

◆ pointer

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef value_type* efl::eina::ptr_list< T, CloneAllocator >::pointer

Type for a pointer to an element.

◆ const_pointer

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef value_type const* efl::eina::ptr_list< T, CloneAllocator >::const_pointer

Type for a constant pointer for an element.

◆ size_type

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef std::size_t efl::eina::ptr_list< T, CloneAllocator >::size_type

Type for size information.

◆ difference_type

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef std::ptrdiff_t efl::eina::ptr_list< T, CloneAllocator >::difference_type

Type to represent the distance between two iterators.

◆ reverse_iterator

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef std::reverse_iterator<iterator> efl::eina::ptr_list< T, CloneAllocator >::reverse_iterator

Type for the clone allocator.

Type for reverse iterator for this container.

◆ const_reverse_iterator

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
typedef std::reverse_iterator<const_iterator> efl::eina::ptr_list< T, CloneAllocator >::const_reverse_iterator

Type for reverse iterator for this container.

Constructor & Destructor Documentation

◆ ptr_list() [1/5]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
efl::eina::ptr_list< T, CloneAllocator >::ptr_list ( )
inline

Default constructor.

Create an empty list.

This constructor creates a ptr_list object with no elements.

◆ ptr_list() [2/5]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
efl::eina::ptr_list< T, CloneAllocator >::ptr_list ( size_type  n,
const_reference  t 
)
inline

Construct an list object with n copies of t.

Parameters
nNumber of elements.
tValue to be copied to each element.

This constructor creates an ptr_list with n elements, each one as a copy of t.

◆ ptr_list() [3/5]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
template<typename InputIterator >
efl::eina::ptr_list< T, CloneAllocator >::ptr_list ( InputIterator  i,
InputIterator const &  j,
clone_allocator_type const &  alloc = clone_allocator_type(),
typename eina::enable_if<!eina::is_integral< InputIterator >::value >::type *  = 0 
)
inline

Create a list with elements from the given range.

Parameters
iIterator to the initial position. The element pointed by this iterator will be copied.
jIterator to the final position. The element pointed by this iterator will NOT be copied.
allocClone allocator to be used.

This constructor creates a ptr_list with copies of the elements between i and j in the same order.

Note
The ending element (pointed by j) is not copied.

◆ ptr_list() [4/5]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
efl::eina::ptr_list< T, CloneAllocator >::ptr_list ( ptr_list< T, CloneAllocator > const &  other)
inline

Copy constructor.

Creates a copy of the given ptr_list.

Parameters
otherAnother ptr_list of the same type.

This constructor creates a ptr_list containing a copy of each element inside other in the same order.

◆ ptr_list() [5/5]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
template<typename CloneAllocator1 >
efl::eina::ptr_list< T, CloneAllocator >::ptr_list ( ptr_list< T, CloneAllocator1 >const &  other)
inline

Creates a copy of a ptr_list with a different clone allocator.

Parameters
otherAnother ptr_list with a different clone allocator.

This constructor creates a ptr_list containing a copy of each element inside other in the same order, even if the given list uses a different clone allocator.

◆ ~ptr_list()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
efl::eina::ptr_list< T, CloneAllocator >::~ptr_list ( )
inline

Destructor.

Release all allocated elements.

Member Function Documentation

◆ operator=()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
ptr_list<T, CloneAllocator>& efl::eina::ptr_list< T, CloneAllocator >::operator= ( ptr_list< T, CloneAllocator >const &  other)
inline

Replace the current content with the cotent of another list.

Parameters
otherAnother ptr_list of the same type.

This assignment operator replaces the content of the list by a copy of the content of other. The list size is adjusted accordingly and the newly copied elements keep their original order.

◆ size()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
std::size_t efl::eina::ptr_list< T, CloneAllocator >::size ( ) const
inline

Get the current size of the list.

Returns
Number of elements in the list.

This member function returns the current number of elements inside the list.

Referenced by efl::eina::operator==().

◆ empty()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
bool efl::eina::ptr_list< T, CloneAllocator >::empty ( ) const
inline

Check if the list is empty.

Returns
true if the list is empty, false otherwise.

This member function returns true if the list does not contain any elements, otherwise it returns false.

◆ get_clone_allocator()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
clone_allocator_type efl::eina::ptr_list< T, CloneAllocator >::get_clone_allocator ( ) const
inline

Get the clone allocator of the list.

Returns
Reference to the clone allocator.

◆ push_back() [1/3]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
void efl::eina::ptr_list< T, CloneAllocator >::push_back ( const_reference  a)
inline

Add a copy of the given element at the end of the list.

Parameters
aElement to be added at the end of the list.

This member function allocates a new element, as a copy of a, and inserts it at the end of the list.

◆ push_back() [2/3]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
void efl::eina::ptr_list< T, CloneAllocator >::push_back ( pointer  p)
inline

Add the object pointed by p as a element at the end of the list.

Parameters
pPointer to a pre-allocated element to be inserted at the end of the list.

This member function adds the object pointed by p as a element at the end of the list. The list gains ownership of the pointer and nothing is copied.

Warning
The list gains ownership of the given pointer and will release the pointed object upon element destruction.

◆ push_back() [3/3]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
template<typename Deleter >
void efl::eina::ptr_list< T, CloneAllocator >::push_back ( std::unique_ptr< T, Deleter > &  p)
inline

Add the object pointed by p as a element at the end of the list.

Parameters
pReference to a unique_ptr pointing to a element to be inserted at the end of the list.

This member function adds the object pointed by the given unique_ptr as a element at the end of the list. The object ownership is transfered to the list and nothing is copied.

Warning
The list gains ownership of the object managed by the given unique_ptr and will release it upon element destruction.

◆ push_front() [1/3]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
void efl::eina::ptr_list< T, CloneAllocator >::push_front ( const_reference  a)
inline

Add a copy of the given element at the beginning of the list.

Parameters
aElement to be added at the beginning of the list.

This member function allocates a new element, as a copy of a, and inserts it at the beginning of the list.

◆ push_front() [2/3]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
void efl::eina::ptr_list< T, CloneAllocator >::push_front ( pointer  p)
inline

Add the object pointed by p as a element at the beginning of the list.

Parameters
pPointer to a pre-allocated element to be inserted at the beginning of the list.

This member function adds the object pointed by p as a element at the beginning of the list. The list gains ownership of the pointer and nothing is copied.

Warning
The list gains ownership of the given pointer and will release the pointed object upon element destruction.

◆ push_front() [3/3]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
template<typename Deleter >
void efl::eina::ptr_list< T, CloneAllocator >::push_front ( std::unique_ptr< T, Deleter > &  p)
inline

Add the object pointed by p as a element at the beginning of the list.

Parameters
pReference to a unique_ptr pointing to a element to be inserted at the beginning of the list.

This member function adds the object pointed by the given unique_ptr as a element at the beginning of the list. The object ownership is transfered to the list and nothing is copied.

Warning
The list gains ownership of the object managed by the given unique_ptr and will release it upon element destruction.

◆ insert() [1/6]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::insert ( iterator  i,
value_type const &  t 
)
inline

Insert a copy of the given element at the given position.

Parameters
iIterator pointing to the position where the new element will be inserted.
tValue to be copied to the new element.
Returns
Iterator pointing to the new element inserted.

This member function inserts a copy of the element t at the position i. The new element comes right before the element originally pointed by i.

At the end, a valid iterator pointing to the element just inserted is returned.

◆ insert() [2/6]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::insert ( iterator  i,
pointer  pv 
)
inline

Insert the object pointed by pv as a element at the given position.

Parameters
iIterator pointing to the position where the new element will be inserted.
pvPointer to a pre-allocated object to be inserted to the list.
Returns
Iterator pointing to the new element inserted.

This member function adds the object pointed by pv as a element at the given position. The new element comes right before the element originally pointed by i. The list gains ownership of the pointer and nothing is copied.

At the end, a valid iterator pointing to the element just inserted is returned.

Warning
The list gains ownership of the given pointer and will release the pointed object upon element destruction.

◆ insert() [3/6]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
template<typename Deleter >
iterator efl::eina::ptr_list< T, CloneAllocator >::insert ( iterator  i,
std::unique_ptr< value_type, Deleter > &  p 
)
inline

Insert the object pointed by p as a element at the given position.

Parameters
iIterator pointing to the position where the new element will be inserted.
pReference to a unique_ptr pointing to the element to be inserted in the list.
Returns
Iterator pointing to the new element inserted.

This member function adds the object pointed by p as a element at the given position. The new element comes right before the element originally pointed by i. The object ownership is transfered to the list and nothing is copied.

At the end, a valid iterator pointing to the element just inserted is returned.

Warning
The list gains ownership of the object managed by the given unique_ptr and will release it upon element destruction.

◆ insert() [4/6]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::insert ( iterator  i,
size_t  n,
value_type const &  t 
)
inline

Insert n copies of t at the given position.

Parameters
iIterator pointing to the position where the new elements will be inserted.
nNumber of elements to be inserted.
tValue to be copied to each new inserted element.
Returns
Iterator pointing to the first inserted element.

This member function inserts n new elements at position i in the list, each one as a copy of t. The new elements come right before the element originally pointed by i.

At the end, a valid iterator pointing to the first element inserted is returned.

◆ insert() [5/6]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::insert ( iterator  i,
size_t  n,
pointer  p 
)
inline

Insert the object pointed by p and n-1 copies of it as elements at the given position.

Parameters
iIterator pointing to the position where the new elements will be inserted.
nNumber of elements to be inserted.
pPointer to a pre-allocated object to be inserted in the list.
Returns
Iterator pointing to the first inserted element.

This member function inserts the object pointed by p and n-1 copies of it as elements at the given position. The new elements come right before the element originally pointed by i.

At the end, a valid iterator pointing to the first element inserted is returned.

Warning
The list gains ownership of the given pointer and will release the pointed object upon element destruction.

◆ insert() [6/6]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
template<typename InputIterator >
iterator efl::eina::ptr_list< T, CloneAllocator >::insert ( iterator  p,
InputIterator  i,
InputIterator  j,
typename eina::enable_if<!eina::is_integral< InputIterator >::value >::type *  = 0 
)
inline

Insert the elements between the given range at the given position.

Parameters
pIterator pointing to the position where the new elements will be inserted.
iIterator to the initial position. The element pointed by this iterator will be copied.
jIterator to the final position. The element pointed by this iterator will NOT be copied.
Returns
Iterator pointing to the first inserted element.

This member function inserts a copy of the elements between i and j at the position p. The new elements come right before the element originally pointed by p. Note that the element pointed by j is not copied.

At the end, a valid iterator pointing to the first element inserted is returned.

◆ erase() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::erase ( iterator  q)
inline

Remove the element at the given position.

Parameters
qIterator pointing to the element to be removed.
Returns
Iterator pointing to the element after the removed one.

This member function removes the element pointed by the iterator q, reducing the list size by one. At the end, a valid iterator pointing to the element right after the removed one is returned.

◆ erase() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::erase ( iterator  i,
iterator  j 
)
inline

Remove the elements between the given range.

Parameters
iIterator pointing to the starting position to be removed.
jIterator pointing to the ending position to be removed. The element pointed by this iterator is not removed.
Returns
Iterator pointing to the new position of the first non-removed element after the removed ones (i.e. the one originally pointed by j).

This member function removes the elements between the iterators i and j, including the element pointed by i but not the element pointed by .

◆ assign() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
template<typename InputIterator >
void efl::eina::ptr_list< T, CloneAllocator >::assign ( InputIterator  i,
InputIterator  j,
typename eina::enable_if<!eina::is_integral< InputIterator >::value >::type *  = 0 
)
inline

Replace the content of the list by the elements in the given range.

Parameters
iIterator pointing to the beginning of the elements to be copied.
jIterator pointing to the end of the elements to be copied. Note that the element pointed by j will NOT be copied.

This member function replaces the current elements by copies of the elements between the iterators i and j, including the element pointed by i but not the one pointed by j. The size of the list is adjusted accordingly and the newly copied elements remain in their original order.

◆ assign() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
void efl::eina::ptr_list< T, CloneAllocator >::assign ( size_type  n,
value_type const &  t 
)
inline

Replace the content of the list by n copies t.

Parameters
nNumber of elements.
tValue to be copied to each element.

◆ back() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
value_type& efl::eina::ptr_list< T, CloneAllocator >::back ( )
inline

Get a reference to the last element.

Returns
Reference to the last element in the list.

◆ back() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
value_type const& efl::eina::ptr_list< T, CloneAllocator >::back ( ) const
inline

Get a constant reference to the last element.

Returns
Constant reference to the last element in the list.

Version of back() for const-qualified objects. Returns a constant reference instead.

◆ front() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
value_type& efl::eina::ptr_list< T, CloneAllocator >::front ( )
inline

Get a reference to the first element.

Returns
Reference to the first element of the list.

◆ front() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
value_type const& efl::eina::ptr_list< T, CloneAllocator >::front ( ) const
inline

Get a constant reference to the first element.

Returns
Constant reference to the first element of the list.

Version of front() for const-qualified objects. Returns a constant reference instead.

◆ begin() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_iterator efl::eina::ptr_list< T, CloneAllocator >::begin ( ) const
inline

◆ end() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_iterator efl::eina::ptr_list< T, CloneAllocator >::end ( ) const
inline

◆ begin() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::begin ( )
inline

Get an iterator pointing to the first element of the list.

Returns
Iterator to the initial position of the list.

This member function returns an iterator pointing to the first element of the list. If the list is empty the returned iterator is the same as the one returned by end().

◆ end() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
iterator efl::eina::ptr_list< T, CloneAllocator >::end ( )
inline

Get an iterator to the position following the last element of the list.

Returns
Iterator to the final position of the list.

This member function returns an iterator to the position following the last element in the list. If the list is empty the returned iterator is the same as the one returned by begin().

Note
Note that attempting to access this position causes undefined behavior.

◆ rbegin() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_reverse_iterator efl::eina::ptr_list< T, CloneAllocator >::rbegin ( ) const
inline

Get a constant reverse iterator pointing to the reverse begin of the list.

Returns
Constant reverse iterator pointing to the reverse begin of the list.

Version of rbegin() for const-qualified objects. Returns a constant reverse iterator instead.

◆ rend() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_reverse_iterator efl::eina::ptr_list< T, CloneAllocator >::rend ( ) const
inline

Get a constant reverse iterator pointing to the reverse end of the list.

Returns
Constant reverse iterator pointing to the reverse end of the list.

Version of rend() for const-qualified objects. Returns a constant reverse iterator instead.

◆ rbegin() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
reverse_iterator efl::eina::ptr_list< T, CloneAllocator >::rbegin ( )
inline

Get a reverse iterator pointing to the reverse begin of the list.

Returns
Reverse iterator pointing to the reverse begin of the list.

This member function returns a reverse iterator pointing to the last element of the list. If the list is empty the returned reverse iterator is the same as the one returned by rend().

◆ rend() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
reverse_iterator efl::eina::ptr_list< T, CloneAllocator >::rend ( )
inline

Get a reverse iterator pointing to the reverse end of the list.

Returns
Reverse iterator pointing to the reverse end of the list.

This member function returns a reverse iterator pointing to the position before the first element of the list. If the list is empty the returned iterator is the same as the one returned by rbegin().

Note
Note that attempting to access this position causes undefined behavior.

◆ cbegin()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_iterator efl::eina::ptr_list< T, CloneAllocator >::cbegin ( ) const
inline

Get a constant iterator pointing to the first element of the list.

Returns
Constant iterator to the initial position of the list.

This member function works like begin() const but is granted to return a constant iterator even for lists that are not const-qualified.

◆ cend()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_iterator efl::eina::ptr_list< T, CloneAllocator >::cend ( ) const
inline

Get a constant iterator to the position following the last element of the list.

Returns
Constant iterator to the final position of the list.

This member function works like end() const but is granted to return a constant iterator even for lists that are not const-qualified.

◆ crbegin()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_reverse_iterator efl::eina::ptr_list< T, CloneAllocator >::crbegin ( ) const
inline

Get a constant reverse iterator pointing to the reverse begin of the list.

Returns
Constant reverse iterator pointing to the reverse begin of the list.

This member function works like rbegin() const but is granted to return a constant reverse iterator even for lists that are not const-qualified.

◆ crend()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
const_reverse_iterator efl::eina::ptr_list< T, CloneAllocator >::crend ( ) const
inline

Get a constant reverse iterator pointing to the reverse end of the list.

Returns
Constant reverse iterator pointing to the reverse end of the list.

This member function works like rend() const but is granted to return a constant reverse iterator even for lists that are not const-qualified.

◆ ibegin() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::iterator<value_type> efl::eina::ptr_list< T, CloneAllocator >::ibegin ( )
inline

Get an eina::iterator pointing to the first element of the list.

Returns
eina::iterator to the initial position of the list.

This member function returns an eina::iterator pointing to the first element of the list. If the list is empty the returned iterator is the same as the one returned by iend().

◆ iend() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::iterator<value_type> efl::eina::ptr_list< T, CloneAllocator >::iend ( )
inline

Get an eina::iterator to the position following the last element of the list.

Returns
eina::iterator to the final position of the list.

This member function returns an eina::iterator to the position following the last element in the list. If the list is empty the returned iterator is the same as the one returned by ibegin().

Note
Note that attempting to access this position causes undefined behavior.

◆ ibegin() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::iterator<T const> efl::eina::ptr_list< T, CloneAllocator >::ibegin ( ) const
inline

Get a constant eina::iterator pointing to the first element of the list.

Returns
Constant eina::iterator to the initial position of the list.

Version of ibegin() for const-qualified objects. Returns a constant eina::iterator instead.

◆ iend() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::iterator<T const> efl::eina::ptr_list< T, CloneAllocator >::iend ( ) const
inline

Get an constant eina::iterator to the position following the last element of the list.

Returns
Constant eina::iterator to the final position of the list.

Version of iend() for const-qualified objects. Returns a constant eina::iterator instead.

◆ cibegin()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::iterator<T const> efl::eina::ptr_list< T, CloneAllocator >::cibegin ( ) const
inline

Get an eina::iterator pointing to the first element of the list.

Returns
eina::iterator to the initial position of the list.

This member function works like ibegin() const but is granted to return a constant iterator even for lists that are not const-qualified.

◆ ciend()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::iterator<T const> efl::eina::ptr_list< T, CloneAllocator >::ciend ( ) const
inline

Get an constant eina::iterator to the position following the last element of the list.

Returns
Constant eina::iterator to the final position of the list.

This member function works like iend() const but is granted to return a constant iterator even for lists that are not const-qualified.

◆ swap()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
void efl::eina::ptr_list< T, CloneAllocator >::swap ( ptr_list< T, CloneAllocator > &  other)
inline

Swap content between two lists.

Parameters
otherOther ptr_list of the same type.

Referenced by efl::eina::swap().

◆ max_size()

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
size_type efl::eina::ptr_list< T, CloneAllocator >::max_size ( ) const
inline

Get the maximum number of elements ptr_list can hold.

Returns
Maximum number of elements a ptr_list can hold.

◆ native_handle() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
Eina_List* efl::eina::ptr_list< T, CloneAllocator >::native_handle ( )
inline

Get a handle for the wrapped Eina_List.

Returns
Handle for the native Eina list.

This member function returns the native Eina_List handle that is wrapped inside this object.

Warning
It is important to take care when using it, since the handle will be automatically released upon object destruction.

◆ native_handle() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
Eina_List const* efl::eina::ptr_list< T, CloneAllocator >::native_handle ( ) const
inline

Get a constant handle for the wrapped Eina_List.

Returns
Constant handle for the native Eina list.

Version of native_handle() for const-qualified objects. Returns a constant handle instead.

See also
native_handle()

◆ accessor() [1/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::accessor<T const> efl::eina::ptr_list< T, CloneAllocator >::accessor ( ) const
inline

Get a constant eina::accessor for the list.

Returns
Constant eina::accessor to the list.

Version of accessor() to const-qualified inline lists. Returns a const-qualified eina::accessor instead.

◆ accessor() [2/2]

template<typename T, typename CloneAllocator = heap_no_copy_allocator>
eina::accessor<value_type> efl::eina::ptr_list< T, CloneAllocator >::accessor ( )
inline

Get a eina::accessor for the list.

Returns
eina::accessor to the list.