| 80 | } |
| 81 | |
| 82 | void ExampleFunctionPassFunction() { |
| 83 | namespace ffi = tvm::ffi; |
| 84 | // Create a function from a typed lambda |
| 85 | ffi::Function fapply = ffi::Function::FromTyped( |
| 86 | // NOLINTNEXTLINE(performance-unnecessary-value-param) |
| 87 | [](const ffi::Function f, ffi::Any param) { return f(param.cast<int>()); }); |
| 88 | ffi::Function fadd1 = ffi::Function::FromTyped( // |
| 89 | [](const int a) -> int { return a + 1; }); |
| 90 | int b = fapply(fadd1, 2).cast<int>(); |
| 91 | EXPECT_EQ(b, 3); |
| 92 | } |
| 93 | |
| 94 | void ExamplegGlobalFunctionRegistry() { |
| 95 | namespace ffi = tvm::ffi; |