- 1 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:11:41 ]
- LuaやSquirrelなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです まとめwiki(なにか質問する前に必ずみること!) wikiwiki.jp/lua/ その他の参考URLは>2から ■前スレ 【Lua】組み込み系言語総合【Squirrel】 pc12.2ch.net/test/read.cgi/tech/1205208141/ ■過去スレ その3 pc11.2ch.net/test/read.cgi/tech/1160799232/ その2 pc8.2ch.net/test/read.cgi/tech/1063711237/ その1 pc5.2ch.net/tech/kako/1034/10341/1034182349.html
- 804 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:46:56 ]
- 皆luaスクリプトの暗号化はどうやってるん?
リファレンスマニュアル探したけど、それらしい物が無かったんだが…
- 805 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:53:24 ]
- Luaってシリアライズできなかったっけ
- 806 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:12:18 ]
- lua_load/lua_dumpで自前で暗号化するくらしかできんよね
- 807 名前:デフォルトの名無しさん [2010/02/03(水) 08:55:04 ]
- 暗号化したファイルを読み込んで復元し、文字列にする>luaL_loadbufferやluaL_loadstringにその文字列を渡してコンパイル
って手順ではダメ?
- 808 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 10:27:02 ]
- Python人気ねーな。luaより断然コード書きやすいのに。遅いけど
- 809 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 12:43:27 ]
- >>808
>>4
- 810 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 12:46:04 ]
- Luaがもうちょっとキモくない文法ならいいんだけどなぁ
- 811 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 12:49:10 ]
- 文法だけ変換するプリプロセッサかトランスレータのようなものを作ればいいんじゃないだろうか
- 812 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 13:02:55 ]
- たった数十kbくらいのサイズで
Cライクな文法が使える超軽量な組み込みないかな LuaとかPawnも、小さい部類だろうけど不要な物が多すぎる
- 813 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 18:35:51 ]
- asじゃあかんの
- 814 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 21:16:11 ]
- Win版でUTF8とUTF16を相互変換するようにLuaを改造したけど需要ないかしら
たとえばSDLとか ところで、Windows x64向けにビルドしてみたけど > print(2^63 - (2^63+1)) でなぜか0が返ってくる > print(2^31 - (2^31+1)) なら1になるけど ちなみにlua_Integerの実体ptrdiff_tは8バイトになってる どこがおかしいのかわからん
- 815 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 21:57:11 ]
- 整数も浮動小数点で計算するからだそうだ‥‥
64bit integerに対して64bit doubleじゃ精度足りないっての パッチがあったからつっこんでみるが、ちゃんと動くか心配だ
- 816 名前:804 mailto:sage [2010/02/03(水) 21:57:40 ]
- >>805->>807
アドバイスありがとう。 luaL_loadbufferやluaL_loadstringを使うという発想は思いつきませんでした。
- 817 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 15:53:15 ]
- >>811
Euphoria, t3x, moto, JavaなどCトランスレータを実装している言語は探すと色々あるものの、 トランスレート後に吐いたCソースとハンドコードしたCソースとのリンク方法が 文章化されてなかったりするするんだよな。 >>812 小さくはないが...elastiCは? ttp://www.elasticworld.org/
- 818 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 19:12:28 ]
- Luaスクリプトってバインダなしで使い物になるレベル?
- 819 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 19:41:20 ]
- 何らかのバインダ及びグルーが無いと、スクリプトの意味が無い気が。
- 820 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:35:40 ]
- mingw ,gcc を前提としてるバインダが多い様な気がして
lua手を出しにくいのです。。。
- 821 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:52:42 ]
- lua51.libとlua5.1.libって何が違うんだろう
- 822 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:53:06 ]
- それは気のせいないし思い込みでは……
- 823 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:57:42 ]
- .so を makefile でつくる、という事例にちょくちょく
遭遇しまうまう・・・orz
- 824 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 22:02:22 ]
- バインダはLuaではなくバインダという言語である!!
- 825 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 22:04:46 ]
- $(CC) を $(CL) とか代えて、pkg-config はそのままでも
nmake -f makefile でビルドできるもんなんだろうか・・・
- 826 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 00:11:51 ]
- pkg-configはシェルスクリプトだからmsysなりcygwinなり要るだろ
- 827 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 00:39:23 ]
- nmakeには、一から書き直して食わしてる
必要なobjぐらいなら写せるだろ
- 828 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 00:52:13 ]
- それ全然lua関係ないじゃん
必要なc/cppファイルひろって Makefile 書き直すなり Visual Studio でプロジェクトファイルつくるなりぐらいやりなされ。 そんな難しいもんじゃない。
- 829 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 11:59:44 ]
- >>828
こういう問題を回避するためにSquirrelのソースパッケージをCMake対応にして フォーラムに投げてみたら、いらないって言われた……。
- 830 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 18:05:55 ]
- オレはCMakeで固まろうとした
- 831 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 12:14:44 ]
- luaのuserdataとlightuserdataの違いって
userdata ・lua側でアロケート ・lua側でデアロケート(GC) ・Cには参照のみが渡される ・Cからは寿命が分からない lightuaserdata ・C側でアロケート ・C側でデアロケート ・luaには参照のみが渡される ・luaからは寿命が分からない これ以外になんか有りますか? それとluaとCでuserdata、lightuserdataの寿命を同期させる方法は有りますか?
- 832 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 12:41:41 ]
- meta tableの有無も違ってたかも
- 833 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:15:34 ]
- >>831
これは心の贅肉をそのまま箇条書きにしたみたいで面白いな 考え方としてはとりあえず lightuserdataは無くても整数値で代用できる、と割り切ってしまうほうが簡単 そうすると、整数とuserdataを比較するのは無意味だとわかる
- 834 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 21:32:49 ]
- |Д゚)<バインダが面倒な人向けにいいもの置いておきますね
|Д゚)つ[AngelScript] |ミ サッ [AngelScript]
- 835 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 21:47:45 ]
- //
/ / パカッ //⌒)∩__∩ /.| .| ノ ヽ / | | ● ● | / | 彡 ( _●_) ミ AngelScript!! / | ヽ |∪| /_ // │ ヽノ \/ " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
- 836 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:25:21 ]
- >>832,833
レスどうもです メタテーブルの有無は重要ですね いろいろいじってようやくユーザークラスをLuaに公開できるところまでこぎつけました しかしlightuserdataは使い道がわからず・・・
- 837 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:50:27 ]
- lightuserdataはCからのポインタの入れ物として使うのが想定されているらしい。
- 838 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 14:36:10 ]
- lightuserdataは、スクリプトで操作したいクラスのインスタンスとか放り込むんじゃないの?
ゲームとかだとひとつのスクリプトで複数のオブジェクトを制御する必要があるし。
- 839 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:41:29 ]
- C++のオブジェクトとLuaのオブジェクトが混在するのか・・・
C++/CLIならもっとすごいことになるな
- 840 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:14:33 ]
- C++のオブジェクトをスクリプトで操作する感じかな。
例えばスクリプトで SetSpeed(1,20) とかいうような関数があった場合、C++側でlightuserdataを取り出し、 //lightuserdataからObjectのポインタを取り出す Object *lpObject=(Object*)GetLightUserData(L); //Objectを操作する lpObject->SetSpeed(x,y); って感じの処理をするグルー関数を用意する。
- 841 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:22:00 ]
- lightuserdataでC++/Luaのインスタンスを協調させてみようかと頑張ってるんだができないorz
userdataでやれば上手くいくんだけどlightuserdataのほうが軽いらしいし・・・ C++側で tableを作る tableにインスタンスへのポインタをlightuserdataで格納 tableに各種メソッドを格納(メソッドはself(第一引数)tableからインスタンスへのポインタを取り出してクラスのメソッドをコールする) さらにtableを積んで__gcフィールドにデリータを格納 最初のテーブルにメタテーブルとして設定 最初のテーブルを返す という感じでやってるんだけどLua側で__gcが呼ばれてくれない mt = getmetatable、mt.__gc(hoge)とすればちゃんとデリータを呼んでくれるのに・・・ こっちがDLL codepad.org/5CuryxGE こっちがLua codepad.org/BON62sBh
- 842 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:44:41 ]
- userdataとlightuserdataは全く別物。用途が違う。
パソコンでできることがケータイではできないと嘆いているようなもんだぞ?
- 843 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:23:56 ]
- >>841
そういうことができなくなってる分軽いわけなんだが……
- 844 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:31:07 ]
- じゃあlightuserdataは何に使うんだろう
コールバック的な使い方でしょうか
- 845 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:44:12 ]
- だから主にC側で作ったインスタンス(のポインタ)の受け皿だって
- 846 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:51:50 ]
- >>844
てか、マニュアルにもCのポインタそのものだって書いてあるだろう。 Cでよくあるハンドルスタイルやコールバックスタイルの構造を直接扱うためにある。 例えば fopenの帰り値の FILE* を void* にキャストして lightuserdata として持ってそのまま使う。 処理する時には、必ずCの関数をいちいち呼び出すのを前提として、 「LUA側は持ってるだけで何もさわらないデータ構造」として準備されてる。 これの使い方が直感的にわからない人がいるってのが驚きだった^^;
- 847 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:54:46 ]
- わからない人というか、深読みする人もたまにいるな。
ひどくなると「それはただの××だよ」と言われると反論してくる。 「お前はそうやって分かったつもりになってるだけだ」とか。
- 848 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:05:07 ]
- lightuserdataはテーブルのキーとして使う。
自前のオブジェクトのアドレスや、OSから渡されるハンドルをキーにしてテーブルを参照すれば、同じアドレスやハンドルに同じuserdataを対応させることができる。 ちなみに、この時のテーブルはweak tableにしておくといい。 ということを初めて知った時は目から鱗だった。
- 849 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:40:47 ]
- 何かLuaって面倒くさいな(´ω`)
- 850 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:14:16 ]
- ひたすら軽量さが売りの言語って感じだなあ。
- 851 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:22:51 ]
- ところで848のテクニック?のサンプルソースとかどっかでダウンロードできないかな?
- 852 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:50:34 ]
- >>841みたいにuserdataの方にクラスのインスタンスのポインタを格納して
Luaから呼ばれるC++側の関数で取り出して使ってるんだけど、>>831 みるとuserdataはLua側でGCかかるの?
- 853 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 00:40:38 ]
- codepad.org/8Z7d8J62
うーんこんな感じですかね? ポインタをキーにという発想はすごい便利そうな予感がしますね しかしグルーコード内のエラー処理とかってどうすればいいんだろう C++例外を投げるべきなのか、関数内でもみ消してlua_errorするべきなのか
- 854 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 07:40:28 ]
- >>852
「C++側」と「Lua側」をきっちりと分離したいんだな。 組み込み言語は、そういう幻想にうんざりしてる人のためにあるんだと思うけどな。
- 855 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:48:05 ]
- Luaって速度が同じぐらいで、文法が素直な組み込みスクリプトが作られたらあっという間に駆逐されそう
- 856 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 11:02:47 ]
- >>855
作られてないから駆逐されてない訳で
- 857 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 11:04:23 ]
- もともとマイナーな分野なのに亜流が既にいくつも出ていてそれができないってことは
実際のところLuaのバランスが優れているってことでしょ
- 858 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 12:13:32 ]
- 罠を避けるのが上手い。
静的型 クラス メタプログラミング 並列処理 遅延評価 参照透明性 ・・・
- 859 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 12:58:59 ]
- 文法重視で速度気にしてない人は squirrel 使ってるし普通に棲み分けになってんじゃね?
- 860 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 13:04:33 ]
- 自分がLua選んだ理由は日本語の資料が一番多かったからだな。
次点の理由はスタティックリンクできたから。
- 861 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 19:55:29 ]
- 文法が嫌いとかいうやつって、
自分の英語ができないのは分法を教えるからって口だろ
- 862 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 20:54:28 ]
- まぁ855の言うことが真ならSquirrelによってあっという間に駆逐されてるはずだな。
- 863 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 20:56:42 ]
- >>861
逆だよ。 文法ができないから英語できないんだよ。
- 864 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:00:44 ]
- >>863
>861が何を言ってるのか分かってるの?w
- 865 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:12:14 ]
- 俺スクリプトをLuaのVM用のバイトコードにコンパイルすればいいじゃん
- 866 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:19:01 ]
- yieldをライブラリとして提供するのは実装の幅を狭めてると思う
- 867 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:28:24 ]
- >>862
>>347みる限り速度はでLua>>>>Sq
- 868 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:34:53 ]
- はじめて日が浅いけど L とか -1 が乱舞する
C拡張に馴染む日はくるんだろうか俺・・・
- 869 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:37:30 ]
- >>868
俺は2日で拡張できるようになったぞ
- 870 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 09:34:09 ]
- >>347では速度がLuaより早いにも関わらず日本ではあまり使われていないGameMonkey。
ざっと見た感じは文法も特に変な感じじゃないから、使いやすそうな感じはするんだけどね。 日 本 語 資 料 皆 無 だ け ど な
- 871 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 11:26:11 ]
- >日本語資料
月並みなことを言うと 因果関係ではなく相関関係ならあるかもしれない
- 872 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 11:32:07 ]
- Pawnも文法はシンプルに見えるが流行らないのはやっぱり何かが足りないんだろうな
- 873 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 14:25:57 ]
- 足りないというよりはLuaの情報量や実績やユーザ数を
代えられるほどのものではないということだろう
- 874 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 16:13:12 ]
- Luaってゲーム以外で使われてますか?
- 875 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 16:40:55 ]
- >>874
SciTEとか
- 876 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 17:04:31 ]
- apacheとかwiresharkの拡張に地味に使われてたりする
もともとゲーム向けってわけじゃないしね
- 877 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 17:50:35 ]
- Schemeが以外と流行らなかったな
- 878 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 17:56:04 ]
- >>874
TextAdept caladbolg.net/luadoc/textadept2/manual/1_Introduction.html 半分以上 Lua で記述され、また Lua で拡張可能なテキストエディタ iconv で読み書きし内部は UTF-8 なので、日本語も使用可
- 879 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:54:30 ]
- >>874
tokyotyrantでLua知ったよ
- 880 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:33:21 ]
- dev.pocoo.org/projects/pygments/browser/pygments/lexer.py
www.frykholm.se/files/markdown.lua coderay.rubychan.de/ プロジェクト管理ツール を作ろう Redmin, Retrospectiva, Trac 基本組み込み用途だよね、とツールを作る用途で 移行する気が起きない理由はこの辺にありそうだとさっき気がつきました・・・
- 881 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:47:01 ]
- lua5.1のDLL版を使ってるんですが、グルーコードの呼び出し規約は__cdeclでいいんでしょうか?
それとも__stdcallにしたほうがいいですか?
- 882 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:55:07 ]
- >>881
たぶん__cdeclだけど仮に間違っていたとしても name manglingの違いで簡単に見分けられるような気がする
- 883 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:57:16 ]
- DLLを使う側の言語の規約に合わせるんだ
Cでしか使わないのなら目的にもよるがどっちでもいいと思うがな
- 884 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:45:42 ]
- >>882
>>883 thxです さっきluaのヘッダ見たところ呼び出し規約は書いてなかったので多分C言語デフォルトのcdeclでよさそうですね
- 885 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:50:36 ]
- Programming in Lua携帯するにはしんどいな
PDFで売ってくれりゃいいのに
- 886 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:59:41 ]
- ばらして持ち歩けよ
- 887 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 16:49:25 ]
- 組み込んで歩けよ
- 888 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 18:52:41 ]
- lua で連想配列形式のテーブルの要素数を調べる方法ある?
配列形式だったら #tbl で、出来るみたいだけど・・・。
- 889 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 20:14:39 ]
- userdata型に型情報を与えて
BOOL isHoge(lua_State *, index); の形で使いたいんですが luaのほうで予め提供されてる方法はありますか? それとも、自分で独自にマップするものなんでしょうか?
- 890 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 20:46:48 ]
- >>888
pairsやnextかな
- 891 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:04:58 ]
- nextだとnilが設定されたフィールドでハマるので
pairsを使った方がいいんじゃまいか
- 892 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:23:44 ]
- luabashがすばらしすぎる。
bashにluaインタプリタ機能追加してbashの拡張ができる& bashが生きている間luaインタプリタも生きているのでlua変数を 保持し続ける。これ重要。 ファイル操作が多いとやっぱりシェルスクリプトが楽だけど コマンド間の結果の連携を環境変数orファイル書き出しで 実装するのはかったるい時に大活躍な予感。
- 893 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 01:40:15 ]
- 組み込み用途以外でLua使おうなんて思わんな
汎用的に使うには標準ライブラリ貧弱だし thenとかdoとか書くの面倒だし
- 894 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 02:40:47 ]
- 低レベルな質問で申し訳ないのですが
wxFormBuilderから追加したイベント宣言を定義するのはどうしたらいいのでしょうか? Generateで書き出した.hファイルにある virtual void OnButton1( wxCommandEvent& event ){ event.Skip(); } の{ event.Skip(); }をコメントアウトすることで 出来なくも無いのですが ヘッダファイルの行頭に // PLEASE DO "NOT" EDIT THIS FILE! とありますし後々修正があったときに困りそうです。 // Virtual event handlers, overide them in your derived class このコメントが鍵のような気もするのですが正直意味が分かりません・・・
- 895 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 03:09:57 ]
- 誤爆ってる、失礼しました
- 896 名前:デフォルトの名無しさん [2010/02/14(日) 11:30:21 ]
- /ヽ /ヽ
':' ゙''" `':, ミ ・ω・ ;, :; . っ ,つ Lua! `:; ,;' `( /'"`∪
- 897 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 16:13:25 ]
- 自作型で__gcでC側のリソースを開放してるんだが
__gcをうっかり書き換えてしまわないように メタテーブルを隠蔽あるいは変更不可にすることはできるだろうか?
- 898 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 19:19:53 ]
- __gcということはユーザーデータか。ならばスクリプト側からはメタテーブル自体の変更はできない。
さらにメタテーブルに__metatableを追加しておけば隠蔽も可能になり、メタメソッドの変更、追加を防止できる。 ただしこれらはC側やdebugライブラリには効果がないし、制限する手段も(多分)無い。
- 899 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:52:18 ]
- C++でRAIIをうっかり忘れてしまうレベルだ
初期化以外でsetmetatable()を使うのか?
- 900 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 22:33:58 ]
- >>898
__metatableというのがあったのか というかユーザデータはもともと変えられないって知らなかったorz レスthxでした >>899 metatableをうっかり書き換えるのはクライアントで、クラスじゃない RAIIをうっかり忘れるのとmetatableをうっかり書き換えるのは別次元の問題 そのクライアントのついうっかりを封印して出来なくしてしまえれば安心して寝れる
- 901 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 23:37:24 ]
- >>900
なにが別次元だ ファイルを読んだり書いたりdllをロードしたりする、普通の言語じゃないか
- 902 名前:デフォルトの名無しさん [2010/02/19(金) 02:15:03 ]
- (◞≼◉ื≽◟◞౪◟,◞≼◉ื≽◟ )
- 903 名前:デフォルトの名無しさん [2010/02/19(金) 20:31:33 ]
- ∩_
〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ Lua!! 彡、 |∪| / / __ ヽノ / (___)
- 904 名前:デフォルトの名無しさん [2010/02/21(日) 15:46:38 ]
- (´・ω・`)
|

|