#pragma once #include #include #include #include namespace torch { struct TupleParser { TupleParser(PyObject* args, int num_args=-1); void parse(bool& x, const std::string& param_name); void parse(int& x, const std::string& param_name); void parse(double& x, const std::string& param_name); void parse(std::vector& x, const std::string& param_name); void parse(std::string& x, const std::string& param_name); protected: std::runtime_error invalid_type(const std::string& expected, const std::string& param_name); PyObject* next_arg(); private: PyObject* args; int idx; }; } // namespace torch