Luaでnamespace風
Luaではnamespaceは使えないというのが定石らしいがなんとなく呼べそうな気もする。
Winで実験。
fabsfがねーとかいってリンクで怒られるのが意味不明。
math.hだけじゃ駄目なんだっけかなぁ。
fabsfからfを取ったらリンクできた。謎。
つうかdoubleで処理したくないんだけど、デバッグ環境だから我慢するしかないね。
ちなみにLuaはスタティックリンクライブラリにしてるのだけどそれが問題?
調べて分かったこと
- グローバル関数は後から同じ名前で登録されると上書きされる
- チャンクネームはまったく関係なし。
- ローカル関数はローカル変数扱いになっていた。
指定のチャンクのローカル関数を実行できると良いんだけど、スタックに積まれないと駄目っぽい。
要はローカル関数はスタックに積まれる事でネームスペースの衝突をさけてることに成功している。スタックに積まれてない状態だとアクセスできない予感。
コードが実行されて始めてスタックに積まれるので毎回パースしなおさないといけないみたいだ。
luaStateを複数持つ以外でいい方法は無いのだろうか。
なんとかならんものか。