#include "tensorstore/util/element_traits.h"
template <class Source, class Dest>
constexpr bool tensorstore::IsElementTypeOnlyExplicitlyConvertible =
   
 (std::is_void_v<Source> > std::is_void_v<Dest>) &&
   
 (std::is_const_v<Source> <= std::is_const_v<Dest>);

Metafunction that evaluates true if an array of Source-type elements is explicitly BUT NOT implicitly convertible to an array of Dest-type elements.

Explicit conversions are (where T indicates a non-const type):

Source

Dest

const void

const T

void

T

void

const T

Unlike the implicit conversions, these conversions are not statically known to be valid, and should be checked at run-time.