|
@@ -55,10 +55,10 @@ O *_call_native_mb_ret_obj(const GDExtensionMethodBindPtr mb, void *instance, co
|
|
|
|
|
|
template <typename R, typename... Args>
|
|
|
R _call_native_mb_ret(const GDExtensionMethodBindPtr mb, void *instance, const Args &...args) {
|
|
|
- R ret;
|
|
|
+ typename PtrToArg<R>::EncodeT ret;
|
|
|
std::array<GDExtensionConstTypePtr, sizeof...(Args)> mb_args = { { (GDExtensionConstTypePtr)args... } };
|
|
|
internal::gdextension_interface_object_method_bind_ptrcall(mb, instance, mb_args.data(), &ret);
|
|
|
- return ret;
|
|
|
+ return static_cast<R>(ret);
|
|
|
}
|
|
|
|
|
|
template <typename... Args>
|
|
@@ -69,10 +69,10 @@ void _call_native_mb_no_ret(const GDExtensionMethodBindPtr mb, void *instance, c
|
|
|
|
|
|
template <typename R, typename... Args>
|
|
|
R _call_utility_ret(GDExtensionPtrUtilityFunction func, const Args &...args) {
|
|
|
- R ret;
|
|
|
+ typename PtrToArg<R>::EncodeT ret;
|
|
|
std::array<GDExtensionConstTypePtr, sizeof...(Args)> mb_args = { { (GDExtensionConstTypePtr)args... } };
|
|
|
func(&ret, mb_args.data(), mb_args.size());
|
|
|
- return ret;
|
|
|
+ return static_cast<R>(ret);
|
|
|
}
|
|
|
|
|
|
template <typename... Args>
|