目次

Xdef_var

Xdef_var(name);

XTAL_BINDマクロのスコープ内で呼び出すことでそのクラスのメンバ変数nameのgetterとsetterを同時にバインドすることができます。Xdef_getterとXdef_setterを順に呼び出すのと全く同じ動作をします。

Example

C++

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();
}

Output

<(instance of lib::builtin::global::Foo)>
100
10