로딩중...
검색중...
일치하는것 없음
tbridgeFunc.inl
1#pragma once
2
5
6namespace by {
7
8#define TEMPL \
9 template <typename Ret, typename T, nbool isBaseObj, template <typename, nbool> class Marshaling, typename... Args>
10#define ME tbridgeFunc<Ret, T, isBaseObj, Marshaling, Args...>
11
12 TEMPL
13 template <size_t... index> str ME::_marshal(args& a, std::index_sequence<index...> s) {
14 tbridge<T>& me = (tbridge<T>*) a.getMe() OR.err("object from frame does not exists.").ret(str());
15 T& real = me.get() OR.err("this object doesn't have _real.").ret(str());
16
17 return Marshaling<Ret, tifSub<typename typeTrait<Ret>::Org, node>::is>::toMgd((real.*(this->_fptr)) // funcPtr
18 (Marshaling<Args, tifSub<typename typeTrait<Args>::Org, node>::is>::toNative(a[index])...)); // and args.
19 }
20
21#undef ME
22#undef TEMPL
23#define TEMPL template <typename T, template <typename, nbool> class Marshaling, typename... Args>
24#define ME tbridgeFunc<void, T, false, Marshaling, Args...>
25
26 TEMPL
27 template <size_t... index> str ME::_marshal(args& a, std::index_sequence<index...>) {
28 tbridge<T>& me = (tbridge<T>*) a.getMe() OR.err("object from frame does not exists.").ret(str());
29 T& real = me.get() OR.err("this object doesn't have _real.").ret(str());
30
31 (real.*(this->_fptr))(Marshaling<Args, tifSub<typename typeTrait<Args>::Org, node>::is>::toNative(a[index])...);
32 return Marshaling<void, tifSub<void, node>::is>::toMgd();
33 }
34
35#undef TEMPL
36#undef ME
37} // namespace by
to Top