Utopia  2
Framework for studying models of complex & adaptive systems.
Utopia::Utils::is_random_access_container< T, std::void_t< std::enable_if_t< is_linear_container_v< T > and std::is_convertible_v< typename std::iterator_traits< typename T::iterator >::iterator_category, std::random_access_iterator_tag > > > > Struct Template Reference

Check if a type T is a random access container, i.e., any container type T that has an iterator tagged with std::random_access_iterator_tag. More...

#include <type_traits.hh>

Inheritance diagram for Utopia::Utils::is_random_access_container< T, std::void_t< std::enable_if_t< is_linear_container_v< T > and std::is_convertible_v< typename std::iterator_traits< typename T::iterator >::iterator_category, std::random_access_iterator_tag > > > >:
Inheritance graph
[legend]
Collaboration diagram for Utopia::Utils::is_random_access_container< T, std::void_t< std::enable_if_t< is_linear_container_v< T > and std::is_convertible_v< typename std::iterator_traits< typename T::iterator >::iterator_category, std::random_access_iterator_tag > > > >:
Collaboration graph
[legend]

Detailed Description

template<typename T>
struct Utopia::Utils::is_random_access_container< T, std::void_t< std::enable_if_t< is_linear_container_v< T > and std::is_convertible_v< typename std::iterator_traits< typename T::iterator >::iterator_category, std::random_access_iterator_tag > > > >

Check if a type T is a random access container, i.e., any container type T that has an iterator tagged with std::random_access_iterator_tag.

Template Parameters
Ttype to check

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