TVM  0.9.4
SolvingRequirements.h File Reference
Include dependency graph for SolvingRequirements.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tvm::requirements::SolvingRequirementsBase< Lightweight >
 
class  tvm::requirements::SolvingRequirements
 
class  tvm::requirements::SolvingRequirementsWithCallbacks
 

Namespaces

 tvm
 
 tvm::requirements
 

Macros

#define ADD_REQUIREMENT(T, name, member)
 

Macro Definition Documentation

◆ ADD_REQUIREMENT

#define ADD_REQUIREMENT (   T,
  name,
  member 
)
Value:
public: \
const T<Lightweight> & name() const { return member; } \
T<Lightweight> & name() { return member; } \
\
private: \
T<Lightweight> member; \
template<typename... Args> \
void build(const T<Lightweight> & m, const Args &... args) \
{ \
static_assert(!check_args<T<Lightweight>, Args...>() && !check_args<T<!Lightweight>, Args...>(), \
#T " has already been specified"); \
member = m; \
build(args...); \
} \
template<typename... Args> \
void build(const T<!Lightweight> & m, const Args &... args) \
{ \
static_assert(!check_args<T<Lightweight>, Args...>() && !check_args<T<!Lightweight>, Args...>(), \
#T " has already been specified"); \
member = m; \
build(args...); \
}

This macro adds a member of type T named member to a class, and a method name to access this member.