#include "tensorstore/data_type.h"
template <typename T>
constexpr bool tensorstore::IsElementType =
   
 (!std::is_volatile_v<T> && !std::is_reference_v<T> &&
    
 !std::is_function_v<std::remove_const_t<T>> &&
    
 !std::is_array_v<std::remove_const_t<T>>);

An ElementType is any optionally const-qualified fundamental type (including void), pointer type, member pointer type, class/union type, or enumeration type. A type of void or const void indicates a type-erased element type.