#include #include namespace torch { namespace jit { struct ScalarTypeClass : public torch::CustomClassHolder { ScalarTypeClass(at::ScalarType s) : scalar_type_(s) {} at::ScalarType scalar_type_; }; template struct MyStackClass : torch::CustomClassHolder { std::vector stack_; MyStackClass(std::vector init) : stack_(init.begin(), init.end()) {} void push(T x) { stack_.push_back(x); } T pop() { auto val = stack_.back(); stack_.pop_back(); return val; } c10::intrusive_ptr clone() const { return c10::make_intrusive(stack_); } void merge(const c10::intrusive_ptr& c) { for (auto& elem : c->stack_) { push(elem); } } std::tuple return_a_tuple() const { return std::make_tuple(1337.0f, 123); } }; } // namespace jit } // namespace torch