トップページtech
1002コメント341KB

【Lua】組み込み系言語総合 その6【Squirrel】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/03/10(日) 15:10:32.28
LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/

その他の参考URLは>2から

■前スレ
【Lua】組み込み系言語総合 その5【Squirrel】
http://toro.2ch.net/test/read.cgi/tech/1321063450/
■過去スレ
その4 http://hibari.2ch.net/test/read.cgi/tech/1301414458/
その3 http://hibari.2ch.net/test/read.cgi/tech/1272643397/
その2 http://pc12.2ch.net/test/read.cgi/tech/1243210301/
その1 http://pc12.2ch.net/test/read.cgi/tech/1205208141/
プログラミング言語 Lua
その3 http://pc11.2ch.net/test/read.cgi/tech/1160799232/
0171デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
AS、さらに調べてみたところ、

「スクリプト内のクラスAにC++側で定義したクラスBをメンバ変数として持たせて、Bのインスタンスに
this.〜でAのメンバ関数のdelegateを渡して保持する」

と循環参照が発生して解放されない、という状態になってるっぽい。

「AにBとスクリプト内のクラスCをメンバ変数として持たせて、Cのインスタンスのdelegateを渡して保持する」

場合は大丈夫っぽいんだが、さてどうしたものか。
0172デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
いや、C++のクラスを弱参照かGCフラグに対応させろよ?
0173デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
弱参照って何?
0174デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
ぬるぽするかもしれない可能性が存在することが保障されてるぽ
0175デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>172
一応、asBEHAVE_GET_WEAKREF_FLAGを使って弱参照にしてみたり、
asOBJ_GCつけてメソッド入れてやってみたんだけど上手く行かないんだ。
asIScriptFunctionが内部で持ってるデリゲート用のオブジェクトが上手く解放できないみたい。
0176デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
コードも無いのに分からない

循環参照にはならない筈なのに解放漏れがあるならそれは
何処かで参照カウント減らして解放するのを忘れているだけなんじゃないか
としか言えない
0177デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
 
\\
\\\
\  ∧_∧
   ( ´・ω・)
   G   と) ガッ >>174
    ヽ⌒)、 \人∧__∧
      ̄ (_) >`д´)')
         ∨つ   /
0178デフォルトの名無しさん2013/08/18(日) NY:AN:NY.AN
AngelScript 2.27.1 is here (so soon? yes)
http://www.gamedev.net/topic/646723-angelscript-2271-is-here-so-soon-yes/

バグフィックス
メモリフットプリントの減少
void expressionで関数の出力引数を省略できる
デフォルト引数を匿名に出来る
0179デフォルトの名無しさん2013/08/29(木) NY:AN:NY.AN
素人だけど勉強がてらにAngel Scriptの解説見てたらめっちゃコンパイル言語でワロタ
0180デフォルトの名無しさん2013/08/30(金) NY:AN:NY.AN
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0181デフォルトの名無しさん2013/08/31(土) NY:AN:NY.AN
enum大好きな俺はAngelScriptも大好き。
0182デフォルトの名無しさん2013/09/01(日) 10:45:33.66
コード補完とか開発環境の恩恵受けられる組み込みスクリプトってある?
0183デフォルトの名無しさん2013/09/01(日) 12:16:25.91
開発環境の恩恵と言えば最近はJavaScript (V8)じゃないの?

ほとんどが動的型付けだから
コード補完の性能はどれも似たようなもの

むしろ使い慣れた開発環境・エディタが対応しているかの方が重要だと思う
0184デフォルトの名無しさん2013/09/01(日) 13:52:27.44
luaにはIDEがあるけど、他でも探せばあるんじゃないか
0185デフォルトの名無しさん2013/09/01(日) 15:20:57.01
>>182
VS&C#にC#だな。
0186デフォルトの名無しさん2013/09/01(日) 15:56:48.03
30億のデバイスで走るJavaを差し置いてC#が組み込み言語とか!

みたいなツッコミでOK?
0187デフォルトの名無しさん2013/09/01(日) 16:01:13.71
30億のデバイスでデバッグできるね(ニッコリ)

って感じでさらに脱線させればOK?
0188デフォルトの名無しさん2013/09/01(日) 18:35:17.50
なにがライトワンスランエニホェアだよ
絵空事ばかり
世迷い言に人々を巻き込みやがって
太平妖術だよ
0189デフォルトの名無しさん2013/09/01(日) 18:36:18.64
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン
0190デフォルトの名無しさん2013/09/01(日) 20:38:37.26
JavaScriptは言語仕様が黒魔術のようだ
0191デフォルトの名無しさん2013/09/02(月) 00:35:21.08
AngelScriptはほぼC++かC#なんで、C++やC#用の補完とか使えた気がする。
0192デフォルトの名無しさん2013/09/02(月) 22:27:39.45
SWIGってLuaでも使えたのか知らなかった
ラッパーとインタフェースの自動生成が捗る?
0193デフォルトの名無しさん2013/09/02(月) 22:41:22.04
そもそもSWIGで捗った記憶がない
最近のは知らんが
0194デフォルトの名無しさん2013/09/04(水) 16:57:01.01
SWIGだめなん?
0195デフォルトの名無しさん2013/09/04(水) 17:20:42.93
パターンファイル作ってクソ重いコンパイルでコケて修正して…
を繰り返してるうちに嫌になるな

生成されたシンボル名が1000文字突破してるの見て
めまいがしたのもいい思い出だ
0196デフォルトの名無しさん2013/09/04(水) 18:12:40.97
この手のタイプは元ソース次第だね
luabindより楽なケースもあればバインダ使わず生で書いたほうが楽なケースもある
その上で、SWIGを選択するような状況でダメだというなら
他の選択肢はtoluaぐらいしかない
で、SWIGとtoluaを比べると
冗長なのはデメリットだが依存せずピュアコードを吐くのはメリットなので好みの問題として
多言語対応でつぶしが効くという1点においてSWIGの勝ちかなと思うよ
0197デフォルトの名無しさん2013/09/10(火) 19:15:01.41
userdataってなんだ・・・
0198デフォルトの名無しさん2013/09/10(火) 19:36:31.38
好きなもの入れちゃっていいんだよ?
0199デフォルトの名無しさん2013/09/11(水) 08:36:58.96
ズブ…
0200デフォルトの名無しさん2013/09/11(水) 16:59:49.05
アーッ!
0201デフォルトの名無しさん2013/09/11(水) 22:45:42.73
UserDataは、スクリプトで操作したいオブジェクトのポインタとか入れるのが一般的かね。
0202デフォルトの名無しさん2013/09/11(水) 22:51:01.71
Cでやったほうが速いとか外部ライブラリ用の構造体へのポインタを突っ込んだり
0203デフォルトの名無しさん2013/09/11(水) 23:26:48.79
ゲームの殆どをAngelScriptで組み
時間のかかる処理だけをネイティブコードに
の方が開発しやすいかもしれない
0204デフォルトの名無しさん2013/09/11(水) 23:30:18.16
何と比較してだ
0205デフォルトの名無しさん2013/09/14(土) 03:21:57.79
横からだが、C++オンリーで組むのと比べて、って事じゃね
0206デフォルトの名無しさん2013/09/15(日) 07:46:57.16
スクワールはもういらんこなの?
0207デフォルトの名無しさん2013/09/15(日) 08:12:11.62
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
0208デフォルトの名無しさん2013/09/15(日) 12:52:09.81
Angelscript見てるとdllで良いんじゃないかと思えてくる
てかそういう用途としてdll使うのってもう流行ってないんかな?(昔のエロゲとか)
呼び出し元を変更したらコンパイルし直しになるのはスクリプトだって同じだし、バインダも必要ない。
もっぱらLGPLの回避法としてしか見なくなった
0209デフォルトの名無しさん2013/09/15(日) 13:28:21.98
ライターにC++で直接書けとでも?
0210デフォルトの名無しさん2013/09/15(日) 14:55:12.13
ライターにAngelScriptで直接書けとでも?
0211デフォルトの名無しさん2013/09/15(日) 16:54:49.61
何でAngelScriptなの
0212デフォルトの名無しさん2013/09/15(日) 17:45:32.19
目指してる、未来がちがうからでしょ
0213デフォルトの名無しさん2013/09/15(日) 21:06:15.98
C++ではコルーチンがなくてゲームに使うには困るかと思ったが
fiberやlongjmpを使ったら出来ない事はないな

だがライターにVisuaStudio入れてもらうとか出来ないだろ?
ライターには簡単にプログラムをインストール・実行できる環境が必要だ

プログラマーにも
・コンパイルから実行までが速い(実行前にネイティブコード生成とか最適化をしないから)
・リフレクションが使える
等のメリットはある

ラムダ式やデリゲートはC++11で使えることは使えるな
0214デフォルトの名無しさん2013/09/15(日) 22:55:54.12
スクリプトの場合、yieldやSuspendで途中で一時停止できるのはでかいと思うよ。
0215デフォルトの名無しさん2013/09/15(日) 23:44:33.85
コルーチンなんて
boost他、標準ライブラリオンリーのイディオムも腐るほどあるし
メリットが感じられない
0216デフォルトの名無しさん2013/09/16(月) 12:08:37.51
それよりGCが自動なところ
0217デフォルトの名無しさん2013/09/16(月) 16:39:52.89
Javaは一つのコードがあらゆる環境で動作する素晴らしい言語だった。
しかし、マイクロソフトが行ったCOM拡張によって互換性が失われ、パソコン用アプリが
スマホでは動かないといったトラブルが起こるようになった。
0218デフォルトの名無しさん2013/09/16(月) 16:50:37.98
C#とかの.NET系環境でのスクリプトっていうと
やっぱりIronPython/IronRubyとかになるんでしょうか?
できればLuaを使いたいのですが、LuaDowNetは随分長い間止まってますし

と質問しようと思って検索したら、AluminiumLua(2008年更新)ってのがあったので
これ試してから出直します。
すみませんでした。
ttps://github.com/chkn/AluminumLua
0219デフォルトの名無しさん2013/09/16(月) 16:52:25.96
2008年は誤りで、今現在もアクティブなプロジェクトでした
たびたびすみません
0220デフォルトの名無しさん2013/09/18(水) 12:01:03.07
C++ではヘッダーとソースそれぞれに関数宣言・定義を書かないといけないが
スクリプトだと一つのファイルに書ける
C++で何でもヘッダーに関数定義を書いたらコンパイル時間が大変な事になる
0221デフォルトの名無しさん2013/09/18(水) 12:09:19.32
そこかよ
0222デフォルトの名無しさん2013/09/18(水) 12:16:26.38
宣言と定義で分けたりせず
一つのファイルに書けてありがたいだろ?
0223デフォルトの名無しさん2013/09/18(水) 12:57:45.99
そのくらいなら JavaでもC#でもDでもできる
0224デフォルトの名無しさん2013/09/18(水) 13:45:40.90
全部C++で書くのでなければ別に良いんだけどな

Javaで書くとAndroidには移植しやすいかもしれないがiPhoneにはそのまま持っていけない
MonoはAndroid、iPhoneでも動くけど無料の開発環境なし

PCでも、未だにXPを使っている様な人はVMを入れていなかったり
その点スクリプト言語のVMは小さいから同梱しやすい

Dとか知らん!
0225デフォルトの名無しさん2013/09/18(水) 14:47:00.98
>>218
コミュニティの規模が小さいのでJScript一択
保守まで考えるとhackはproductとして採用できない
0226デフォルトの名無しさん2013/09/18(水) 22:41:41.90
>>225
Luaの方がスクリプトを書きなれているので、できればそっちを使いたいと思っていました。
JScriptの利用も少し考えましたが、利用方法がいまいちパッとしなかったので見送りました。

保守性は、個人/小規模利用なので大して気にしていません。
0227デフォルトの名無しさん2013/09/19(木) 06:18:34.30
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
0228デフォルトの名無しさん2013/09/24(火) 01:30:13.90
mrubyはここでOK?
0229デフォルトの名無しさん2013/09/24(火) 19:59:45.11
組み込みだからOKだけど、話題にできる人はいないかも
0230デフォルトの名無しさん2013/09/24(火) 21:03:42.63
mrubyの組み込みは、アプリケーション組み込みじゃなくて、家電とかへの組み込みのほうだと思うんだ。
アプリケーション組み込みなら、mrubyでなくとも本家のrubyでもできるし
0231デフォルトの名無しさん2013/09/24(火) 23:53:45.13
べつに、rubyもmrubyもここでやればいいじゃん。
0232デフォルトの名無しさん2013/09/25(水) 00:47:43.99
Rubyはテキストの変換に使う事が多いな。
CSVファイルからスクリプトに変換したりとか。
0233デフォルトの名無しさん2013/09/27(金) 11:18:33.53
luabindを使おうとしたら、lua_openで未解決の外部シンボルがでたー。ちゃんとライブラリ設定してるのに。。。
0234デフォルトの名無しさん2013/09/27(金) 12:04:12.82
バインダーなど使わないでスタック方式に慣れるのが結局は一番だよ
0235デフォルトの名無しさん2013/09/27(金) 18:18:42.84
やっとコンパイル出来た。今から初めて組み込むのでどの処理をluaにもっていこうか全然決まってない。みんなどういう感じで組み込んでるの?
0236デフォルトの名無しさん2013/09/27(金) 18:33:15.82
アプリ完成後にもカスタマイズしたりする部分
0237デフォルトの名無しさん2013/09/27(金) 23:10:20.40
ゲームとしてのエンジン部分を全部Lua側から呼び出せるようにして、
あとはLuaでアルゴリズム組むだけでゲームを作れるようにしておくとすごい快適
個人的には各種パラメータを、数値をイジるだけじゃなく
定義を修正しまくっても余裕なのが最高
0238デフォルトの名無しさん2013/09/28(土) 09:12:16.18
逆に言うとそれだけなんだからLuaで十分なんだよな。
Luaだと辛いなーな部分はCで書きゃいいだけ。
0239デフォルトの名無しさん2013/09/28(土) 11:19:10.07
マインクラフトでJRubyやってたんだけどluajなんてのもあったんだね
Cのバインディングに挫折しそうになってた頃に出会ってたら危なかった
0240デフォルトの名無しさん2013/09/28(土) 15:57:45.92
俺はそこまでやるなら端からもっと高機能な言語使えばいいと思うけどなあ
0241デフォルトの名無しさん2013/09/29(日) 00:13:43.34
AngelScript|Д`)ノ<きたわよ

C++側のクラスとかもそのままスクリプトで使えるよ。
0242デフォルトの名無しさん2013/09/29(日) 02:20:08.22
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン
0243デフォルトの名無しさん2013/10/10(木) 19:31:49.27
>>635
http://www.lua.org/
0244デフォルトの名無しさん2013/10/10(木) 19:33:12.35
gobak
0245デフォルトの名無しさん2013/10/13(日) 01:54:16.74
Luaでちょっと質問なんだけど

Luaの無名関数をC関数で受け取って、
それを、C側から任意のタイミングでコールしたいんだけど、どうしたらいいの?

lua_type()の戻り値を見ると、LUA_TFUNCTION型みたいなんだけど、これはどう扱ったらいいんだろう…
0246デフォルトの名無しさん2013/10/13(日) 06:06:13.41
自己解決
luaL_refとluaL_unrefで参照数を操作して、生かして、
生かしておいたのを lua_rawgetiでスタックにプッシュして
lua_call系でいいんだね
0247デフォルトの名無しさん2013/10/25(金) 14:27:11.51
Luaスクリプトについての質問なんですが、
Luaにエラー関数を設定する場合は
lua_pcallにてエラー関数のスタックを設定しますが、
これをコルーチンで行う場合、
lua_resumeを呼びだすのですがエラー関数の設定が見当たらないです。
どこで設定すると呼びだされるようになるのでしょうか…。

お願いします!
0248デフォルトの名無しさん2013/10/25(金) 15:45:29.07
保護モード事態が特殊な動作なわけだから resume を pcall すれば?
0249デフォルトの名無しさん2013/11/02(土) 00:38:50.34
クラスの中にlua_stateを作っておいて、値の更新とかをlua側でしたいんですけど、
luaに自分自身を渡して、lua側で値を更新させて、自分自身に反映させるのは
どうすればいいでしょう。lua_pushlightuserdataじゃインスタンスは別になる?
0250デフォルトの名無しさん2013/11/02(土) 01:04:30.61
まずC++側とC側に分けて
値の更新をC側でできるようにしてから
C側の内部でLuaを使う
0251デフォルトの名無しさん2013/11/02(土) 01:06:57.46
C++でsetter作って、luaでそれを呼ぶってことですか?
すみません。C++とCで分けるという所はどういう感じで分けるのでしょうか。
0252デフォルトの名無しさん2013/11/02(土) 10:59:08.34
luaで何かアクションをするとC++側の値が書き換わるようにしたい?
userdataにメタテーブルを仕込んでやればできる。他のやり方も
あると思うけど。
例えばuserdataにthisや関数へのポインタを入れておいてメタテーブルに
cfunctionを登録しておく。登録したcfuntcionではuserdataから
thisとかを取り出して何かすればいい。
0253デフォルトの名無しさん2013/11/02(土) 12:43:26.03
>>252
やりたいことは、リコンパイルしなくても値を変更できるようにしたいです。
そこで、luaにオブジェクトの初期処理や更新処理を持っていって、描画はC++で
しようと思ってます。
教えていただいた内容を調べながら試してみます。
0254デフォルトの名無しさん2013/11/02(土) 12:55:58.52
それだったら、C++からLuaの変数を読み出すだけでもいいんじゃない?
C++でLuaチャンク実行→Luaチャンク実行終了→変数の値を読み出して利用する。
LuaのプログラムからCallbackさせながら、C++プログラムと協調動作させる
必要があれば、252のようにする必要があるけど。
0255デフォルトの名無しさん2013/11/02(土) 13:10:44.93
>>254
初期処理でクラスの各項目値は、luaのメソッドを呼び出してその戻り値を受けるので
出来たのですが、更新処理となるとロジックがあって、単純に戻り値を受け取るだけだと
中々難しいなーと思って、ロジックもluaに移そうと思っていました。
そういうのはやっぱり、lua⇒C++の関数⇒luaみたいな感じになるんですね。
自分のイメージとしてはC++でインスタンスをluaに渡す⇒luaで引数のインスタンスに対して
色々な処理を行い値を変更する⇒luaメソッド終了⇒C++に処理が戻るみたいな感じです。
0256デフォルトの名無しさん2013/11/03(日) 10:39:57.23
スクリプト内の変数の値をC/C++側から操作したいって事なのかな。
0257デフォルトの名無しさん2013/11/03(日) 11:14:19.88
C++のポインタはキャストするとどうなるか調べるのが面倒臭いって事でしょ
Cならlua_pushlightuserdataでいいよ
0258デフォルトの名無しさん2013/11/03(日) 11:24:38.17
制御権の受け渡しをどうするかってことでしょ。
Lua側の記述とLuaチャンクの実行の仕方を工夫するしかないんじゃないか?
0259デフォルトの名無しさん2013/11/03(日) 12:00:06.70
C++でnewで確保した領域のポインタを
lua_pushlightuserdata等でlua内の変数に渡しているときに、
このlua内の変数のスコープがはずれたりしたときに、
このポインタをdeleteしたいのだけどできますか?
0260デフォルトの名無しさん2013/11/03(日) 14:45:33.09
基本的に無理じゃね。メタメソッド持てないし
可能ならuserdataで確保したメモリそのものに割り当てるか
スマポとかで包んでからuserdataに突っ込む感じになるかと
0261デフォルトの名無しさん2013/11/03(日) 18:17:24.79
やった事ないけど、tableに突っ込んで__gcイベント捕まえれば逝けない?
0262デフォルトの名無しさん2013/11/03(日) 21:02:45.16
lightuserdataのuserdataに対するメリットって何?
リファレンス見ても機能が少ないだけで何が嬉しいか分からなかった。
0263デフォルトの名無しさん2013/11/04(月) 00:14:11.47
>>259
そこまでやるならもうAngelScriptの方がいいような気がする。
0264デフォルトの名無しさん2013/11/04(月) 00:19:18.11
>>262
ポインタもってるだけだから圧倒的にシンプルだよ。luaがわでは寿命管理しないけどとにかくデータの参照を維持したい場合に使う
0265デフォルトの名無しさん2013/11/04(月) 00:23:01.58
>>259
tableじゃなくてuserdataのmetatable使うのか。面白そうなのでやってみた
配置newを定義して__gcをセットしたmetatableを設定する. gcでデストラクタを明示的に呼ぶ
class a{
void *operator new(size_t size, lua_State *L) {
void *p =lua_newuserdata(L, size);
lua_newtable(L);
lua_pushcfunction(L, gc);
lua_setfield(L, -2, "__gc");
lua_setmetatable(L, -2);
return p;
}
static int gc(lua_State *L) {
a *p = static_cast<a *>(lua_touserdata(L, -1));
p->~a();
return 0;
}
};

// newと同時にLUAスタックにプッシュされる
a *a1 = new(L) a;
0266デフォルトの名無しさん2013/11/04(月) 01:05:41.10
変数がスコープから消えるときは__gcでイベントをとれるとして、
lua内の変数のコピーも認識できないとdeleteしていいかわからないなぁ。
02672662013/11/04(月) 01:11:07.79
と思ったけど、__gc呼ばれるときは問答無用でdeleteしていいのかな?
0268デフォルトの名無しさん2013/11/04(月) 01:56:57.82
そもそもスコープぬけてすぐgcよばれる保証あるの?という素朴な疑問
0269デフォルトの名無しさん2013/11/04(月) 02:42:16.33
無いです!
0270デフォルトの名無しさん2013/11/04(月) 03:46:09.89
参照カウンタではないGCを使う言語は、
あんまりそういう作りになってないなぁ
0271デフォルトの名無しさん2013/11/04(月) 09:52:17.93
スコープぬけてすぐってのは
newではないコンストラクタを使うからできるんだよ
newを使わない保証があるなら参照カウンタもいらないよ
■ このスレッドは過去ログ倉庫に格納されています