Xdef_setter(name)
XTAL_BINDマクロのスコープ内で呼び出すことでそのクラスのメンバ変数nameのsetterをバインドすることができます。
class Foo{ public: int var; public: Foo(int i) : var(i) { } }; XTAL_PREBIND(Foo){ Xdef_ctor1(int); } XTAL_BIND(Foo){ Xdef_getter(var); Xdef_setter(var); } void exec_xtal(){ xtal::global()->def(Xid(Foo), xtal::cpp_class<Foo>()); Xsrc(( foo : Foo(100); foo.p; foo.var.p; foo.var = 10; foo.var.p; ))->call(); }
<(instance of lib::builtin::global::Foo)> 100 10