28 template <
typename Ret,
typename T1, n
bool,
template <
typename, n
bool>
class Marshaling,
typename... Args>
30 template <
typename T1, n
bool>
friend class tbridger;
31 template <
typename T1, n
bool>
friend struct tmarshaling;
34 "parameterized type 'T' shouldn't be a derived class to baseObj. override subs() if it "
44 tbridge(
const me& rhs): super(rhs), _real(rhs._real ? new T(*rhs._real) : nullptr) {}
47 if(_ownReal && _real)
delete _real;
51 T& get() {
return *_real; }
53 const T& get()
const {
return *_real; }
55 const baseObj& getOrigin()
const override {
56 static tbaseObjOrigin<tbridge<T>> org(
57 tbridger<T, tifSub<
typename tadaptiveSuper<T>::super,
baseObj>::is>::subs());
58 const baseObj& supers = super::getOrigin();
59 return &supers ==
this ? org : supers;
64 nbool _ownReal = _real;
Base class for all objects in byeol language.
Definition: baseObj.hpp:24
User-defined class origin in byeol language.
Definition: origin.hpp:17
Definition: tbridgeFunc.hpp:72
Bridge template for C++ objects.
Definition: tbridge.hpp:17
tbridge()
@hidden this api is only available to tmarshaling.
Definition: tbridge.hpp:39
Bridge builder for C++ classes.
Definition: tbridger.hpp:18
Type trait to check if T is subclass of super.
Definition: rtti.hpp:48
Template marshaling interface for C++ bridge.
Definition: tmarshaling.hpp:18