8 #ifndef TREELITE_FRONTEND_IMPL_H_ 9 #define TREELITE_FRONTEND_IMPL_H_ 16 template<
typename Func>
18 Value::Dispatch(Func func) {
20 case TypeInfo::kUInt32:
21 return func(Get<uint32_t>());
22 case TypeInfo::kFloat32:
23 return func(Get<float>());
24 case TypeInfo::kFloat64:
25 return func(Get<double>());
27 throw std::runtime_error(std::string(
"Unknown value type detected: ")
28 + std::to_string(static_cast<int>(type_)));
29 return func(Get<double>());
33 template<
typename Func>
35 Value::Dispatch(Func func)
const {
37 case TypeInfo::kUInt32:
38 return func(Get<uint32_t>());
39 case TypeInfo::kFloat32:
40 return func(Get<float>());
41 case TypeInfo::kFloat64:
42 return func(Get<double>());
44 throw std::runtime_error(std::string(
"Unknown value type detected: ")
45 + std::to_string(static_cast<int>(type_)));
46 return func(Get<double>());
53 #endif // TREELITE_FRONTEND_IMPL_H_