Template Struct is_valid_iterator#

Inheritance Relationships#

Base Type#

  • public std::bool_constant< std::is_same_v< T, std::remove_cv_t< std::remove_reference_t< decltype(*std::declval< IterType >())> > >||std::is_base_of_v< T, std::remove_cv_t< std::remove_reference_t< decltype(*std::declval< IterType >())> > > >

Derived Type#

Struct Documentation#

template<typename T, typename IterType>
struct is_valid_iterator : public std::bool_constant<std::is_same_v<T, std::remove_cv_t<std::remove_reference_t<decltype(*std::declval<IterType>())>>> || std::is_base_of_v<T, std::remove_cv_t<std::remove_reference_t<decltype(*std::declval<IterType>())>>>>#

Helper struct for type-checking.

is_valid_iterator<T,IterType>::value will be true if IterType can be dereferenced into a type that can be stored in an Array<T>, and false otherwise.

Subclassed by tvm::ffi::is_valid_iterator< Optional< T >, IterType >