(perf): use a rvalue cast in func_wrapper (#3966)

* (perf): use an rvalue cast in func_wrapper

* Try to clarify comment

* Fix comment typo
This commit is contained in:
Aaron Gokaslan 2022-05-23 12:26:53 -04:00 committed by GitHub
parent 918d4481a4
commit c42414db86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -98,8 +98,8 @@ public:
explicit func_wrapper(func_handle &&hf) noexcept : hfunc(std::move(hf)) {}
Return operator()(Args... args) const {
gil_scoped_acquire acq;
object retval(hfunc.f(std::forward<Args>(args)...));
return retval.template cast<Return>();
// casts the returned object as a rvalue to the return type
return object(hfunc.f(std::forward<Args>(args)...)).template cast<Return>();
}
};