| 2289 | } |
| 2290 | |
| 2291 | private: |
| 2292 | // normal argument, possibly needing conversion |
| 2293 | template <typename T> |
| 2294 | void process(list & /*names_list*/, T &&x) { |
| 2295 | handle h = detail::make_caster<T>::cast(std::forward<T>(x), policy, {}); |
| 2296 | if (!h) { |
| 2297 | #if !defined(PYBIND11_DETAILED_ERROR_MESSAGES) |
| 2298 | throw cast_error_unable_to_convert_call_arg(std::to_string(m_args.size() - 1)); |
| 2299 | #else |
| 2300 | throw cast_error_unable_to_convert_call_arg(std::to_string(m_args.size() - 1), |
| 2301 | type_id<T>()); |
| 2302 | #endif |
| 2303 | } |
| 2304 | m_args.push_back_steal(h.ptr()); // cast returns a new reference |
| 2305 | } |
| 2306 | |
| 2307 | // * unpacking |
| 2308 | void process(list & /*names_list*/, detail::args_proxy ap) { |
no test coverage detected