Xdef_var(name);
XTAL_BINDマクロのスコープ内で呼び出すことでそのクラスのメンバ変数nameのgetterとsetterを同時にバインドすることができます。Xdef_getterとXdef_setterを順に呼び出すのと全く同じ動作をします。
class Foo{ public: int var; public: Foo(int i) : var(i) { } }; XTAL_PREBIND(Foo){ Xdef_ctor1(int); } XTAL_BIND(Foo){ Xdef_var(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