Public Types | Public Member Functions
efl::eina::_range_template< T, Traits > Struct Template Reference

Range class. More...

Public Types

typedef std::integral_constant< bool, !std::is_const< T >::valueis_mutable
 Type that specifies if the elements can be modified. More...
 
typedef nonconst_container_value_type< T >::type value_type
 The type of each element. More...
 
typedef std::conditional< is_mutable::value, _mutable_range_template< value_type, Traits >, _const_range_template< value_type, Traits > >::type _base_type
 Type for the base class. More...
 
typedef _base_type::native_handle_type native_handle_type
 Type for the native handle of the container. 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 value_typepointer
 Type for a pointer to an element. More...
 
typedef value_type const * const_pointer
 Type for a constant pointer to an element. More...
 
typedef Traits::template const_iterator< value_type >::type const_iterator
 Type for constant iterator to the range. More...
 
typedef _base_type::const_reverse_iterator const_reverse_iterator
 Type for constant reverse iterator to the range. More...
 
typedef Traits::template iterator< value_type >::type iterator
 Type for iterator to the range. More...
 
typedef _base_type::reverse_iterator reverse_iterator
 Type for reverse iterator to the range. More...
 
typedef _base_type::size_type size_type
 Type for size information. More...
 
typedef _base_type::difference_type difference_type
 Type to represent the distance between two iterators. More...
 

Public Member Functions

 _range_template ()
 Creates a singular range object.
 
 _range_template (native_handle_type handle)
 Creates a range object wrapping the given native container handle.
 

Detailed Description

template<typename T, typename Traits>
struct efl::eina::_range_template< T, Traits >

Range class.

Provide objects for accessing and/or modifying elements inside a container without modifying the container itself.

Member Typedef Documentation

◆ is_mutable

template<typename T, typename Traits>
typedef std::integral_constant<bool, !std::is_const<T>::value> efl::eina::_range_template< T, Traits >::is_mutable

Type that specifies if the elements can be modified.

◆ value_type

template<typename T, typename Traits>
typedef nonconst_container_value_type<T>::type efl::eina::_range_template< T, Traits >::value_type

The type of each element.

◆ _base_type

template<typename T, typename Traits>
typedef std::conditional<is_mutable::value, _mutable_range_template<value_type, Traits> , _const_range_template<value_type, Traits> >::type efl::eina::_range_template< T, Traits >::_base_type

Type for the base class.

◆ native_handle_type

template<typename T, typename Traits>
typedef _base_type::native_handle_type efl::eina::_range_template< T, Traits >::native_handle_type

Type for the native handle of the container.

◆ reference

template<typename T, typename Traits>
typedef value_type& efl::eina::_range_template< T, Traits >::reference

Type for a reference to an element.

◆ const_reference

template<typename T, typename Traits>
typedef value_type const& efl::eina::_range_template< T, Traits >::const_reference

Type for a constant reference to an element.

◆ pointer

template<typename T, typename Traits>
typedef value_type* efl::eina::_range_template< T, Traits >::pointer

Type for a pointer to an element.

◆ const_pointer

template<typename T, typename Traits>
typedef value_type const* efl::eina::_range_template< T, Traits >::const_pointer

Type for a constant pointer to an element.

◆ const_iterator

template<typename T, typename Traits>
typedef Traits::template const_iterator<value_type>::type efl::eina::_range_template< T, Traits >::const_iterator

Type for constant iterator to the range.

◆ const_reverse_iterator

template<typename T, typename Traits>
typedef _base_type::const_reverse_iterator efl::eina::_range_template< T, Traits >::const_reverse_iterator

Type for constant reverse iterator to the range.

◆ iterator

template<typename T, typename Traits>
typedef Traits::template iterator<value_type>::type efl::eina::_range_template< T, Traits >::iterator

Type for iterator to the range.

◆ reverse_iterator

template<typename T, typename Traits>
typedef _base_type::reverse_iterator efl::eina::_range_template< T, Traits >::reverse_iterator

Type for reverse iterator to the range.

◆ size_type

template<typename T, typename Traits>
typedef _base_type::size_type efl::eina::_range_template< T, Traits >::size_type

Type for size information.

◆ difference_type

template<typename T, typename Traits>
typedef _base_type::difference_type efl::eina::_range_template< T, Traits >::difference_type

Type to represent the distance between two iterators.