Utopia  2
Framework for studying models of complex & adaptive systems.
Utopia::Utils::is_array_like< T, std::void_t< std::enable_if_t< get_size_v< T > !=std::numeric_limits< std::size_t >::max() and is_container_v< T > >, int > > Struct Template Reference

Check if a given type is a container and has a size which is a compile time constant. The most common type which fulfils these requirements is std::array, hence the name 'is_array_like'. For a new type to be considered array_like, this functor has to be overloaded together with get_size. More...

#include <type_traits.hh>

Inheritance diagram for Utopia::Utils::is_array_like< T, std::void_t< std::enable_if_t< get_size_v< T > !=std::numeric_limits< std::size_t >::max() and is_container_v< T > >, int > >:
Inheritance graph
[legend]
Collaboration diagram for Utopia::Utils::is_array_like< T, std::void_t< std::enable_if_t< get_size_v< T > !=std::numeric_limits< std::size_t >::max() and is_container_v< T > >, int > >:
Collaboration graph
[legend]

Detailed Description

template<typename T>
struct Utopia::Utils::is_array_like< T, std::void_t< std::enable_if_t< get_size_v< T > !=std::numeric_limits< std::size_t >::max() and is_container_v< T > >, int > >

Check if a given type is a container and has a size which is a compile time constant. The most common type which fulfils these requirements is std::array, hence the name 'is_array_like'. For a new type to be considered array_like, this functor has to be overloaded together with get_size.

Template Parameters
TSome type to check array-likeness for.

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