TVM  0.9.4
tvm::graph::abstract Namespace Reference

Classes

class  Node
 
class  Outputs
 
struct  SelectorMembers
 
struct  SelectorMembers< false >
 
class  OutputSelector
 

Functions

template<typename T , typename EnumT >
constexpr bool is_valid_output (EnumT v)
 
template<typename T , typename EnumT , typename... Args>
constexpr bool is_valid_output (EnumT v, Args... args)
 
template<typename T , typename Base >
std::true_type is_output_selector_impl (OutputSelector< T, Base > const volatile &)
 
std::false_type is_output_selector_impl (...)
 
template<typename T >
constexpr bool is_output_selector ()
 

Function Documentation

◆ is_output_selector()

template<typename T >
constexpr bool tvm::graph::abstract::is_output_selector ( )
constexpr

Check at compile-time if T derives from OutputSelector

We cannot use std::is_base_of because OutputSelector is a template class. Instead, we rely on the declaration (only) of the two overloads of is_output_selector_impl. If (and only if) T derives from OutputSelector the overload returning std::true_type will be selected, and thus the following function returns true.

◆ is_output_selector_impl() [1/2]

std::false_type tvm::graph::abstract::is_output_selector_impl (   ...)

detail functions, see is_output_selector

◆ is_output_selector_impl() [2/2]

template<typename T , typename Base >
std::true_type tvm::graph::abstract::is_output_selector_impl ( OutputSelector< T, Base > const volatile &  )

detail functions, see is_output_selector

◆ is_valid_output() [1/2]

template<typename T , typename EnumT >
constexpr bool tvm::graph::abstract::is_valid_output ( EnumT  v)
constexpr

Check if a value of EnumT is a valid output for Outputs type T

◆ is_valid_output() [2/2]

template<typename T , typename EnumT , typename... Args>
constexpr bool tvm::graph::abstract::is_valid_output ( EnumT  v,
Args...  args 
)
constexpr

Check if all values of a given set are valid outputs for Outputs type T