[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 03/03 02:04 / Filesize : 146 KB / Number-of Response : 879
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part28



1 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 06:02:12.35 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。

■前スレ
D言語 Part27
hibari.2ch.net/test/read.cgi/tech/1303022487/

■本家
www.digitalmars.com/d/
www.d-programming-language.org/ (ドキュメント)
www.kmonos.net/alang/d/ (和訳)

■コンパイラ
www.digitalmars.com/d/dcompiler.html (DMD, 本家)
dgcc.sourceforge.net/ (GDC, gccフロントエンド)
www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)

■参考URL
f17.aaa.livedoor.jp/~labamba/ (D言語研究)
f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF)
dsource.org/ (dsource)
tinyurl.com/candcpp2d2 (C/C++に疲れた人のD言語2.0)
www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)
www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games)
dusers.dip.jp (D言語友の会)
www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)

681 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 19:20:56.52 ]
Tagクラスの toNonEndString のところ
decodeじゃなくて、encodeにすべきなんじゃないのか?

682 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 20:03:47.76 ]
>>681
ああ、そっち(出力)の方か。確かにそこをencodeにすると、
outputがエンコードされるようになるな。

誰かbugzillaにレポート投げてくれればfixされるかも。

683 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 22:54:27.85 ]
>>679
やっぱバグなのね。ありがと

つまり次のバージョンでもう半分の-property地獄を体験することになるわけだな
これだからDはやめらんねぇ!

684 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 00:42:58.19 ]
std.xml Commentクラスのコンストラクタ内
× if (content == "-" || content.indexOf("==") != -1)
○ if (content == "-" || content.indexOf("--") != -1)

685 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 05:59:45.30 ]
おお
やっぱ消えると分かっていてもメンテしてくれないと困るな

686 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 06:00:41.72 ]
あるいはguthubで特定のソースに対するpatchを簡単に絞り込めないのかな

687 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 14:21:43.58 ]
ネスト関数に事前条件無しで事後条件書くと構文エラーになるけど、
事前条件有りで事後条件書くとコンパイル通って動くんだけど、なんか理由があるのかな?

688 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 21:12:23.26 ]
>>687
手元で試したら全部通ったけど、どんなコード書いたの?

689 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 22:31:29.87 ]
>>688

void main()
{
string foo()
//in
//{
//}
out (result)
{
assert(result.length == 0);
}
body
{
return null;
}
}

__EOF__

このままコンパイルしようとすると構文エラーで通らない。コメントアウトすると通る。
ちなみにコンパイラはDMD64(v2.057)をUbuntu向けパッケージからインストールしたもの。



690 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 22:35:18.75 ]
エラーメッセージはこんな感じ

d.d(7): found 'foo' when expecting ';' following statement
d.d(7): expression expected, not ')'
d.d(7): found 'out' when expecting ')'
d.d(8): found '{' when expecting ';' following statement
d.d(11): Declaration expected, not 'body'
d.d(14): unrecognized declaration

691 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 23:08:59.74 ]
それ多分ウォルターの自作自演だから

692 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 00:21:59.25 ]
>>689
パーザーの問題。DMDのパーザーは手書きだからこういう抜けが未だにある。
in/outなしでbodyだけ付けるのも同じようにrejectされるな。

原因は判ったのでパッチを書いておくが、bugzillaはどうする?
自分で投げてみるいいチャンスかも。

693 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 00:32:34.95 ]
ちなみにテストコードはこれ

void main()
{
size_t foo() in{} out{} body{ return 0; } // OK
size_t bar() /*in{}*/ out{} body{ return 0; } // NG1
size_t baz() /*in{} out{}*/ body{ return 0; } // NG2
}


694 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 03:41:31.25 ]
あ、仮引数の省略ってできたっけ?

695 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 03:42:00.71 ]
あと使わない実引数の省略もか

696 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 09:52:43.56 ]
>>694
仮引数の省略は不可。
一応、可変個引数で似たようなことは出来るが、余計めんどくさい・・・

>>695
デフォルト引数が設定されている引数については省略可。

697 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 12:15:29.91 ]
いやそうでなくて、変数名の省略

698 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 13:06:37.84 ]
変数名省略できる言語なんかあるのか?

699 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 13:13:57.12 ]
timerStart( 1000, (Timer,EventArgs){ doSomeThing(); } );

こういうのが書ければいいってことでしょ



700 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 13:17:33.72 ]
長い変数名を書くのが面倒で、短い変数名にしたいって事なら、alias使えばおk。
クラスや構造体の参照を簡略化したいなら、with文を使うのもあり。

型名を書くのを省略したいという事なら、残念ながらDでは出来ません。
関数オブジェクトを簡単に作りたいなら、関数リテラルを使えばおk。
型が違うだけで、処理の内容が同じ関数を書くのが嫌という話なら、テンプレートを使えばおk

701 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 13:36:24.87 ]
>>697
void foo(int, long){ ... }
みたいに、通常の関数で型だけを書いて仮引数名を省略することは可能。
これはC言語系列のsyntaxを受け継いでいる。

>>699
2.058からは関数リテラルで仮引数名の省略は出来なくなる。なぜなら
関数リテラルのパラメータ型推論・funciton/delegate推論が入ったため、

(a, b){ doSomethig(); }

で、a,bが型名か仮引数名かパース時点では判明しないため。
→2.057までは型名として、2.058以降は仮引数名として扱われるようになる

>>700
上に書いたとおり、関数リテラル限定で型名を書くのを省略できるようになる。

702 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 14:02:36.29 ]
>>701
なんで通るんだろうと思いつつ。
で、どうやって引数の値にアクセスするのよ?
ideone.com/6NLyf

誰だ、型名省略できるって言ったやつ。
まあ、戻り値の型は省略できるけどね。
ideone.com/AXEQu

703 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 14:49:02.14 ]
>>702
上:コールバック関数やデリゲートに渡すやつで
  「関数の型(引数リスト)が決められているけど
   引数は結局使われない」というケース。>>699 はその例
下:2.058(次期リリース)以降の話。

704 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 15:44:02.20 ]
>>702
C言語やってないだろ!引数を参照しないとコンパイル時に警告でるからそれ対策で型名だけにするってよくやるよ


705 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:44:58.41 ]
>>704
そうそれが知りたかった

706 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 01:32:26.19 ]
>>689
issueとパッチのPullRequestを出しておきました。

d.puremagic.com/issues/show_bug.cgi?id=7218
https://github.com/D-Programming-Language/dmd/pull/608

707 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 09:25:27.92 ]
>>704
しらねーよ!悪かったな!

708 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:24:31.05 ]
>>706
マージされた
https://github.com/D-Programming-Language/dmd/commit/4d93bbf53cba3eb19733d2e5cd209b67034f2d10

709 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:10:11.82 ]
はやっ
どうなってんだ



710 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:12:29.93 ]
はやすぎる(笑)

711 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:23:18.36 ]
ム板では結局ここが一番落ち着く

712 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:29:57.36 ]
上に同じこと書いたのを完全に忘れていた
もう駄目かな…

713 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:45:00.75 ]
・基本的にWalterは毎日commitを行っている
・PullRequestも最低1つぐらいは一日にマージされる
・Parser関係のfixは理解しやすい&影響範囲も限られる
→変更の規模としては小さい部類なので比較的早くにマージされる

まあ、パッチの規模がでかいと逆に半年ぐらい放置状態になるんだけど。

714 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 06:30:57.53 ]
他の言語と違ってここのはコンパイラの修正がユーザーに近い時点で行われてるから
根強いファンが絶えないのも頷けるなw

715 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 14:40:44.35 ]
dwt2もgithubに移行か

716 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 18:03:48.52 ]
dwt2 もろくにメンテされてなかったけど
移行してマシになるの?


717 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 20:18:31.68 ]
一応メンテはされてるんだけど
オフィシャルへの反映が遅い…

718 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:41:55.28 ]
ハードウェアがより高性能に進化、ソフトウェアがより多機能に進化、
それに命令や操作をする人間は進化するどころか文化や人格を決め付けや思い込みで否定する争いを始めた

719 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 01:26:59.13 ]
DはマルチメディアやGUI関連に弱すぎる



720 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 02:04:44.28 ]
質問です。
std.randomのuniformのboundariesを指定したいときはどうすればよいのでしょうか。

721 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 02:12:35.95 ]
uniform!("[]")(0.0, 1.0, generator);

722 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 09:33:38.41 ]
なんだその指定方法(笑)

723 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 10:53:52.75 ]
>>721
ありがとうございました。

724 名前:デフォルトの名無しさん [2012/01/09(月) 11:27:03.86 ]
おまえらバンドのDは好き?
www.d-gcr.com/

725 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 16:41:13.84 ]
今はじめて知ったから好きも嫌いもない

726 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:06:04.89 ]
知ってたけど話題にするほどいいバンドじゃないからあえて書き込まなかったのに…

727 名前:デフォルトの名無しさん [2012/01/10(火) 06:38:59.55 ]
すみません。教えてください。

可変個関数引数に、ポインタを指定するにはどうすれば良いですか?

void die( ... )
{
real* foo = cast( real* )_argptr;
*foo = 0.0;
}

void main()
{
real evil = 666.0;
die( &evil );
}

こんな感じなのですが、上手く渡せません。

すいません。よろしくお願いします。

728 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 10:15:31.56 ]
import core.vararg;
...
real* foo = va_arg!( real* )( _argptr );
...

phobos のソースを _argptr でgrepした (w


729 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 02:01:31.34 ]
それポインタ?



730 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 11:51:42.81 ]
_argptrは、渡された引数へのポインタなんだから。
ideone.com/j4fL9

でも、もっといいのは、可変個引数関数を使うのではなくて、テンプレートのタプルを使う方法。
ideone.com/oNAbZ

もっと言うなら、ポインタを渡さずに、ref引数や、参照型のクラスを使う方が安全。

731 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 15:05:14.13 ]
Internal error: ..\ztc\cgcs.c 354
ってなんぞ?

732 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 16:45:47.49 ]
自己解決しますた
配列を返す関数を呼んでその戻り値に直接[]で添え字指定してたのが問題のようですた

733 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 17:38:51.29 ]
Deimos楽しそうだね

734 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 19:39:44.49 ]
なにせDでアプリ書くにはCのライブラリが必sゲルンゲフン

735 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 20:26:50.36 ]
githubから消えてるんだけどdeimosってどこにあるんだ
あとVisualDがインテリセンス的なもの載せてさらに凄くなってやがる

736 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 01:00:24.65 ]
github.com/d-programming-deimos

737 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 01:11:09.31 ]
Dもrubyみたいにブラッシュアップしてくれる中学生(ただし美少女に限る)どこかにいないかな

738 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 20:10:17.09 ]
スタックやキューなどのデータ構造のコレといったライブラリはありますか?
なければ自分で作るのでいいんですが、一応……。

739 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 20:58:39.02 ]
dcollectionsなのかなあ、コレというのは
個人的には配列が強力すぎて必要性を感じない



740 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 11:28:39.23 ]
bool foo(T)(T[] a ...){
return true;
}
void main(){
assert(foo(1,1,1,1,1,1));//OK
assert(foo("abc","abc","abc","abc"));//コンパイルエラー
}

これをコンパイルしようとしたら
test.d(6): Error: expected 1 function arguments, not 4
って怒られる


741 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 12:09:07.55 ]
foo(1,1,1,1,1,1);
のほうは実は
foo([1,1,1,1,1,1]);
でも呼び出せる。
2番目のもこれだと解釈されてる

742 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 12:09:27.16 ]
import std.stdio;

bool foo(T)(T[] a ...){
  foreach(i; a)
    write(i);
  return true;
}
void main(){
  foo([1,2,3]); // 出力: 123
}

SomeType[] a ...
という可変個引数の場合、可変部分ナシで配列を一つ渡すことでaに直接配列を渡せる。
だから、文字列(char[])に限らずfooに最初配列を渡した時点でaに対して配列を渡したことになって、複数渡すとエラーになる。

配列自体を可変個引数として渡したい場合は
foo!(string)("abc", "abc", "abc")
foo!(int[])([1,2,3], [4,5,6])
みたいにTが何であるか教えてやらないといけない。

743 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 13:03:58.75 ]
>>741-742
Tをちゃんと指定しないといけないんですね。
ありがとうございました。

744 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 13:07:31.14 ]
いやまあ、引数が配列複数な時点でコンパイラがTを配列として扱うべきな気もするけど……

745 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 12:38:20.34 ]
std.container.Array!(char) str;
が通らないんですけどどうすればいいんでしょう
ちょっとgcから切り離されたstringが欲しかっただけなんですけど

746 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 14:28:21.70 ]
>>745
malloc/freeを直接つかうとか

747 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 19:07:59.01 ]
@property void push(int[] arr, int val) { arr ~= val; }
void main() {
 int[] arr;
 arr.push = 42;
}

UFCSとか見てて、どうせだからこういうことしたくなるけど
さすがに無茶だよなぁ

748 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 19:11:08.92 ]
>>745
Array!(dchar) にしないとだめみたいだな
いいんだか、悪いんだか

749 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 19:41:50.36 ]
>>747
後でソース読むときが大変だと思う



750 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 20:35:15.76 ]
interfaceにGUID付けられるようにならないかな
RTTIからGUID取れるようにしてObjectのQIだけですべてのパターンに対応できる感じで
まあDelphiのパクリなんだけど
ちなみにこんな感じでできたら最高
ideone.com/GspW0

751 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 04:40:49.62 ]
昆布のtoってオブジェクトに対してかけるとobj.to!Tに転送されるんだね
ソース見るまで気づかなかった

752 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 08:25:24.26 ]
class A{
T to(T:string)(){
return "";
}
}
toStringより特殊化の方がいいってこと?

753 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 10:53:58.40 ]
最近は
T to(T)() if (is(T == string)) {
のほうだな

754 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:09:13.49 ]
しかし class の to は deprecate で cast 使うようになりそう?
www.d-programming-language.org/phobos/std_conv.html#toImpl
Scheduled for deprecation in January 2012. Please define opCast for user-defined types instead of a to function. to will now use opCast.

755 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:42:27.25 ]
to は双方向で
toString は一方通行のイメージ

756 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:04:37.08 ]
foreachでmixinって出来ない?
foreachを展開してmixinしかないかな
こんな感じにしたい
int abc, def;
foreach(s; ["abc", "def"])
writeln(mixin(s));

757 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:59:55.47 ]
mixinの中身はコンパイル時に確定しないといけないから無理じゃないかな
今CTFEでループさせるなら再帰しか無いけどstatic foreachって入る予定あるの?

758 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:55:05.17 ]
>>756
こういう事じゃないんだろうな、と思いつつ。
ideone.com/iZWxL

759 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:14:38.17 ]
>>756
foreachをコンパイル時に回す(=展開する)なら、
配列ではなくタプルを渡すとうまく行く

import std.traits;
foreach(s;TypeTuple!("abc","def"))
 writeln(mixin(s));



760 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:25:29.44 ]
>>751-755
型Aのオブジェクトaから型Bへの変換を行わせたい時、std.conv.toは
1. a.opCast!B()
2. a.to!B() // deprecated
3. B(a) // Bはstruct
または new B(a) // Bはclass
を試そうとする。但し B==string の場合はa.toString()が優先される。

761 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:51:27.28 ]
>>757-759
聞いてみるもんだなありがとう!
>>759がまんまだったよ
でもstd.traitsじゃなくてstd.typetupleだった

762 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:56:10.51 ]
俺はなんて遠まわしな事をしているんだ。
ideone.com/dUPb6

763 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 07:35:04.36 ]
>>759
おおすばらしい
この辺いつか文法的に整理されると信じてる

764 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 11:52:28.16 ]
>>761
正直言ってTypeTupleという名前は混乱の元だと思ってる。
(型だけではなく式やシンボルも受け取れるので)
Seq!(...)より抽象的でいいと思うんだけどなあ

765 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:38:12.57 ]
ところでRangeって便利ですか?

766 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:54:46.75 ]
Ranger

767 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 00:04:41.28 ]
便利さが実感できない

768 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 00:45:12.66 ]
かゆいところに手が届かない

769 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:33:09.60 ]
auto cap = std.regex.match( ... ).captures;

cap.length == 0 と cap.empty の結果が違うのはなんでなん?



770 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:30:51.49 ]
間違えた
前は cap.empty を見なくても length だけで行けてたのに、何で変えてしまったん?

771 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:31:16.51 ]
違わないけどどういう時?

772 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:41:52.41 ]
公式じゃないdflってドラッグドロップしたら落ちるバグって治ってますか


773 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:05:25.62 ]
確かこのスレの人が直したはず

774 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:12:29.32 ]
Application.autoCollect = false;

公式見解のこの方法じゃなくて?


775 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:18:14.98 ]
>>769-771
auto cap = std.regex.match( ... ).captures;
if (cap.length == M+1) {
// マッチしたときの処理
// 2.057 だとマッチしなくても入ってくる
}

こんな風に書いてたのが全滅して泣いた

776 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:07:56.06 ]
スコープの外に出てないローカルオブジェクトってスコープの終わりで自動的にGCとかされます?

777 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:06:00.07 ]
>>776
つttp://kmonos.net/alang/d/2.0/garbage.html
されない。明示的にdeleteしても、scope属性を付けても保証されるのはデストラクタの実行まで。
core.memory.GC.collect()を呼んでも動かないかも?
ttp://bm98.yaneu.com/dlang/Chapter-06.html
↑ちょっと古いけど、この辺の実装今はどうなってるんだろう?

778 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:07:04.54 ]
いえーい!777ゲット!

779 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:07:22.76 ]
oh…



780 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:16:29.13 ]
>>778
777オメw

781 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 07:49:24.19 ]
>>740-744
PullRequest投げました
d.puremagic.com/issues/show_bug.cgi? id=7359
https://github.com/D-Programming-Language/dmd/pull/637






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<146KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef