12 template <
typename T, n
bool isBaseObj>
class tbridger;
18 template <
typename Ret,
typename T,
template <
typename, n
bool>
class Marshaling,
typename... Args>
22 typedef Ret (T::*fptrType)(Args...);
31 _src(dumSrc::singleton()) {}
36 sizeof(metaIf::yes))...>::value,
37 "can't marshal one of this func's parameter ntypes.");
40 const ntype& getType()
const override {
return _type; }
42 const baseObj& getOrigin()
const override {
55 void onCloneDeep(
const clonable& from)
override {
60 const src& getSrc()
const override {
return *_src; }
62 void setSrc(
const src& new1) { _src.bind(new1); }
73 template <
typename Ret,
typename T, n
bool isBaseObj,
template <
typename, n
bool>
class Marshaling,
typename... Args>
83 str _runNative(
args&
args)
override {
return _marshal(
args, std::index_sequence_for<Args...>()); }
85 template <
size_t... index>
str _marshal(
args&
args, std::index_sequence<index...>);
88 template <
typename T,
template <
typename, n
bool>
class Marshaling,
typename... Args>
97 str _runNative(
args&
args)
override {
return _marshal(
args, std::index_sequence_for<Args...>()); }
99 template <
size_t... index>
str _marshal(
args&
args, std::index_sequence<index...>);
102 template <
typename T,
template <
typename, n
bool>
class Marshaling,
typename... Args>
111 str _runNative(
args&
args)
override {
return _marshal(
args, std::index_sequence_for<Args...>()); }
113 template <
size_t... index>
str _marshal(
args&
a, std::index_sequence<index...>) {
114 T& me = (T*)
a.getMe()
OR.err(
"object from frame does not exists.").ret(
str());
121 template <
typename Ret,
typename T,
template <
typename, n
bool>
class Marshaling,
typename... Args>
131 str _runNative(
args&
args)
override {
return _marshal(
args, std::index_sequence_for<Args...>()); }
133 template <
size_t... index>
str _marshal(
args&
a, std::index_sequence<index...>) {
134 T& me = (T*)
a.getMe()
OR.err(
"object from frame does not exists.").ret(
str());
Function or object evaluation arguments.
Definition args.hpp:22
Base class for all function types.
Definition baseFunc.hpp:41
virtual params & getParams()
Base class for representing byeol objects.
Definition baseObj.hpp:73
script type for function objects in byeol language.
Definition funcType.hpp:11
void onCloneDeep(const clonable &from) override
Performs a deep clone operation for this script type instance.
Base class for all AST nodes in the byeol language.
Definition node.hpp:195
represents native c++ type system for byeol language
Definition ntype.hpp:33
Byeol runtime environment object.
Definition obj.hpp:62
Function parameter.
Definition param.hpp:14
Function parameter list container.
Definition params.hpp:16
Source location information.
Definition src.hpp:15
Base bridge function template.
Definition tbridgeFunc.hpp:19
Definition tbridgeFunc.hpp:74
C++ to byeol bridge builder.
Definition tbridger.hpp:61