Go to the documentation of this file.
9 #define TVM_ADD_OPTION_GET_SET(optionName, type) \
11 const std::optional<type> & optionName() const { return optionName##_; } \
12 auto & optionName(const type & v) \
21 #define TVM_ADD_DEFAULT_OPTION(optionName, type) \
23 using optionName##_t = type; \
24 std::optional<type> optionName##_; \
25 TVM_ADD_OPTION_GET_SET(optionName, type)
30 #define TVM_ADD_NON_DEFAULT_OPTION(optionName, defaultValue) \
32 using optionName##_t = std::remove_const_t<decltype(defaultValue)>; \
33 std::optional<optionName##_t> optionName##_ = defaultValue; \
34 TVM_ADD_OPTION_GET_SET(optionName, optionName##_t)
39 #define TVM_PROCESS_OPTION_2(optionName, target, setterName) \
40 if(options.optionName()) \
41 target.setterName(options.optionName().value());
44 #define TVM_PROCESS_OPTION(optionName, target) TVM_PROCESS_OPTION_2(optionName, target, optionName)
49 #define TVM_PROCESS_OPTION_PUBLIC_ACCESS_2(optionName, target, fieldName) \
50 if(options.optionName()) \
51 target.fieldName = options.optionName().value();
54 #define TVM_PROCESS_OPTION_PUBLIC_ACCESS(optionName, target) \
55 TVM_PROCESS_OPTION_PUBLIC_ACCESS_2(optionName, target, optionName)