====== XTAL_BIND_ALIAS ======
XTAL_BIND_ALIAS(ClassName, Name);
[[XTAL_BIND]]のALIAS版で、違いや効果などは[[XTAL_PREBIND]]と[[XTAL_PREBIND_ALIAS]]の比較と同じです。C++クラス//ClassName//のメンバを//Name//という名前のクラスのメンバとしてバインドします。
===== Example =====
==== C++ ====
class Foo{
public:
Foo(){
StringPtr("foo constructed")->p();
}
void print(){
StringPtr("foo")->p();
}
};
XTAL_PREBIND_ALIAS(Foo, Bar){
Xdef_ctor0();
}
XTAL_BIND_ALIAS(Foo, Bar){
Xdef_method(print);
}
void exec_xtal(){
xtal::global()->def(Xid(Bar), xtal::cpp_class());
Xsrc((
bar : Bar();
bar.p;
bar.print;
))->call();
}
==== Output ====
foo constructed
<(instance of lib::builtin::global::Foo)>
foo