[[
Xdef_fun
]]
Xtal Unofficial Wiki
現在位置:
Xtal Unofficial Wiki
»
Xtal Reference
»
Xdef_fun
文書の表示
以前のリビジョン
最近の変更
サイトマップ
ログイン
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Xdef_fun ====== <code cpp> Xdef_fun(fun) Xdef_fun_alias(fun, impl) </code> XTAL_BINDマクロのスコープ内で呼び出すことでそのクラスの静的メンバ関数//fun//をバインドすることができます。alias版は//fun//という名前で関数//impl//をバインドすることができます。 普通の関数をクラスの静的メソッドとしてバインドしたいときには、Class::def_fun(Xid(fun), &fun)もしくはXdef(Xid(fun), xtal::fun(&fun))を使います。 ===== Example ===== ==== C++ ==== <code cpp> class Foo{ public: Foo(){ } void print() const{ StringPtr("foo")->p(); } void static doublePrint(const Foo& foo){ foo.print(); foo.print(); } }; void Foo_doublePrint(const Foo& foo){ foo.print(); foo.print(); } XTAL_PREBIND(Foo){ Xdef_ctor0(); } XTAL_BIND(Foo){ Xdef_fun(doublePrint); Xdef_fun_alias(doublePrint2, &Foo_doublePrint); //or it->def_fun(Xid(doublePrint2), &Foo_doublePrint); //or Xdef(Xid(doublePrint2), fun(&Foo_doublePrint)); } void exec_xtal(){ xtal::global()->def(Xid(Foo), xtal::cpp_class<Foo>()); Xsrc(( foo : Foo(); foo.p; Foo::doublePrint(foo); Foo::doublePrint2(foo); ))->call(); } </code> ==== Output ==== <code cpp> <(instance of lib::builtin::global::Foo)> foo foo foo foo </code>
reference/xdef_fun.txt · 最終更新: 2011/09/03 23:42 by sukai
文書の表示
以前のリビジョン
文書の先頭へ