D言語 Part22
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/06/22(月) 01:38:41過去スレ、関連スレは >>2
■前スレ
http://pc12.2ch.net/test/read.cgi/tech/1234363551/
■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)
■コンパイラ
http://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
http://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
http://www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)
■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF)
ttp://dsource.org/ (dsource)
ttp://tinyurl.com/candcpp2d (C/C++に疲れた人のD言語)
ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
ttp://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)
ttp://www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games)
■ IDE
ttp://dronten.googlepages.com/dscite (DSciTE)
ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks)
ttp://www.dprogramming.com/entice.php (Entice Designer)
ttp://www.dsource.org/projects/descent (Descent)
ttp://www.dsource.org/projects/poseidon (Poseidon)
0233デフォルトの名無しさん
2009/07/15(水) 21:59:24ttp://dsource.org/projects/bindings/wiki/WindowsApi
0234デフォルトの名無しさん
2009/07/15(水) 23:32:58おお、まさに求めていたものが・・・。
ありがとうございました。
0235デフォルトの名無しさん
2009/07/16(木) 01:39:230236デフォルトの名無しさん
2009/07/16(木) 21:32:540237デフォルトの名無しさん
2009/07/16(木) 22:38:170238デフォルトの名無しさん
2009/07/16(木) 22:43:45動作するプラットフォームの多さ?
0239デフォルトの名無しさん
2009/07/16(木) 23:17:030240デフォルトの名無しさん
2009/07/16(木) 23:30:56auto len = arr.length;
arr.length = 1000;
arr.length = len;
これでおk?
0241デフォルトの名無しさん
2009/07/16(木) 23:37:33cのライブラリを積極的に使うならgdcのほうが楽だと信じてる。
gccで吐いたバイナリそのまま使えるし。
0242デフォルトの名無しさん
2009/07/16(木) 23:38:11それ、本家に書いたらstd.arrayにテンプレートとして組み込んでくれるんじゃないか。
配列の疑似プロパティでarr.reserve(1000)で通るようになるかと。
0243デフォルトの名無しさん
2009/07/16(木) 23:42:39void reserve(T)(T[] a, size_t reserve_len)
in {
assert(a.length<len);
}
body {
auto len = arr.length;
arr.length = reserve_len;
arr.length = len;
}
0244デフォルトの名無しさん
2009/07/16(木) 23:46:490245デフォルトの名無しさん
2009/07/16(木) 23:48:25たしかにチェックしないとだめだった。
英語できないのでどなたかお願いしますorz
0246デフォルトの名無しさん
2009/07/17(金) 00:10:36大きい配列を割り当てて、それのスライスを使えばいいだけ
0247デフォルトの名無しさん
2009/07/17(金) 00:19:23gdbでデバッグできる
0248デフォルトの名無しさん
2009/07/17(金) 00:25:20大きい配列のサイズを1000として、それのスライスのサイズが1000を超えた時、
配列が2つアロケートされたままになるのが気持ち悪くない?
ガベコレがある言語では気にする意味なし?
0249デフォルトの名無しさん
2009/07/17(金) 00:39:26自分でも全然使ってない。ユーザー定義リテラルキボンヌ
0250デフォルトの名無しさん
2009/07/17(金) 00:50:290251デフォルトの名無しさん
2009/07/17(金) 00:51:350252デフォルトの名無しさん
2009/07/17(金) 01:00:290253デフォルトの名無しさん
2009/07/17(金) 01:27:36autoもあるんだし
0254デフォルトの名無しさん
2009/07/17(金) 02:29:09DTLってThe Case For Dをみてると最大限Dを活かすための、ぼくのかんがえたさいきょうのコンテナライブラリを構想してる段階な感じなのかな?
0255デフォルトの名無しさん
2009/07/17(金) 02:43:120256デフォルトの名無しさん
2009/07/17(金) 03:01:03実行速度はC++よりちょい遅いくらい
0257デフォルトの名無しさん
2009/07/17(金) 03:18:04あとconstはC++の感覚で、つけられるところは全てつけていくべきですかね?
0258デフォルトの名無しさん
2009/07/17(金) 03:28:10クラス型でもinをつければconstと同じ意味があるし、outやrefは参照変数になる。
constやimmutableは積極的につけるべき。
0259デフォルトの名無しさん
2009/07/17(金) 03:34:08ほとんどinになるけど。
推移的constなのでモリモリとconstを書く必要はないが、逆にそれが嫌という例もある
むしろpure, nothrowの方が重要
0260デフォルトの名無しさん
2009/07/17(金) 04:16:39レスthx
C++でconst参照で受け取ってた部分は、Dではinにすればいいんですね。
pureとnothrowも意識してみます。
0261デフォルトの名無しさん
2009/07/17(金) 04:39:430262デフォルトの名無しさん
2009/07/17(金) 05:23:52ってあるけどさ、これってそのうちpopFrontとかfrontってのに書き変わるのかな?
現状Phobosの中のRangeのそれと食い違ってて混乱の元になる気がするのだけど。
0263デフォルトの名無しさん
2009/07/17(金) 05:24:58それはドキュメントが更新されてないだけ。
実装はfront/popFront/emptyになってる。
0264デフォルトの名無しさん
2009/07/17(金) 05:44:380265デフォルトの名無しさん
2009/07/17(金) 11:56:16Dのクラスは常に参照だからinでconst参照と思ったんですが、違いがあるんですか?
構造体の場合に違うのかな。
C++から移行したものにはガベコレが難しい。
0266デフォルトの名無しさん
2009/07/17(金) 13:12:27参照型の参照と参照渡しの参照は若干意味が違う。
0267デフォルトの名無しさん
2009/07/17(金) 15:48:48なるほど、const refとすると推移的constによって、クラスの非constメンバにアクセスできなくなるって事ですね。
でも、in MyClassで全て間に合う気がしてしまいます。
const ref MyClassとする事によって役に立つケースはどんなものがありますか?
0268デフォルトの名無しさん
2009/07/17(金) 17:09:230269デフォルトの名無しさん
2009/07/17(金) 18:19:21ref引数にはlvalueの参照を渡すわけだから、変数を書き換えられるようになるわけですよ
0270デフォルトの名無しさん
2009/07/18(土) 19:37:43でもまだドキュメント化されてない…?
0271デフォルトの名無しさん
2009/07/18(土) 20:09:38ドキュメントはあるのにどこにもリンクが無いstd.perfさんの立場も考えろよ
0272デフォルトの名無しさん
2009/07/18(土) 20:14:310273デフォルトの名無しさん
2009/07/18(土) 20:31:29というかなんでstd.dateの中にあんの?
0274デフォルトの名無しさん
2009/07/18(土) 20:40:56正直スマンかった…
まぁ、core.sync.*はTangoのそれと同じみたいだからそれ見ればいい話か…
0275デフォルトの名無しさん
2009/07/18(土) 21:29:460276デフォルトの名無しさん
2009/07/19(日) 00:44:440277デフォルトの名無しさん
2009/07/19(日) 02:06:40俺も気になってた。
1.0系、2.0系どっちの更新履歴にも名前すら出てこない。
0278デフォルトの名無しさん
2009/07/19(日) 03:44:48古いのを何個か落として確認してみたけど、なかったよ。
OutBufferのドキュメントにInBufferの名前があるだけ。
0279デフォルトの名無しさん
2009/07/19(日) 11:30:32class A{
int a;
invariant(){}
ref int fn(){
return a;
}
}
0280デフォルトの名無しさん
2009/07/19(日) 11:35:280281デフォルトの名無しさん
2009/07/19(日) 13:22:350282デフォルトの名無しさん
2009/07/19(日) 13:51:13システムプログラミング言語だったら、プログラマの意図したときに解放させたいと思うときがあるはず
0283デフォルトの名無しさん
2009/07/19(日) 14:40:320284デフォルトの名無しさん
2009/07/19(日) 15:34:48sharedRef!(A) a = sharedRef!(A)(new A);
とかやんないといけないからメンドイのです
0285デフォルトの名無しさん
2009/07/19(日) 15:38:22とかまでならできるんじゃないか?ヘルプ関数使えば。
0286デフォルトの名無しさん
2009/07/19(日) 15:54:420287デフォルトの名無しさん
2009/07/19(日) 16:09:190288デフォルトの名無しさん
2009/07/19(日) 16:24:290289デフォルトの名無しさん
2009/07/19(日) 18:19:46標準に欲しいものは作ってnews groupに投稿したらいいんだよ
0290デフォルトの名無しさん
2009/07/19(日) 18:23:220291デフォルトの名無しさん
2009/07/22(水) 15:09:03嫌がらせ?
0292デフォルトの名無しさん
2009/07/22(水) 15:45:110293デフォルトの名無しさん
2009/07/22(水) 19:29:050294デフォルトの名無しさん
2009/07/22(水) 21:03:540295デフォルトの名無しさん
2009/07/23(木) 00:03:57嬉しいよねー。パフォーマンスどうなんだろう。
0296デフォルトの名無しさん
2009/07/23(木) 00:13:16だれかFiberの旨味を教えてくれ…
0297デフォルトの名無しさん
2009/07/23(木) 00:17:420298デフォルトの名無しさん
2009/07/23(木) 00:37:02オブジェクトに状態の変数持たせなくてもローカル変数で済むし。
Stateパターンいちいち使うのもめんどいからなあ。
0299デフォルトの名無しさん
2009/07/23(木) 01:51:110300デフォルトの名無しさん
2009/07/23(木) 02:25:420301デフォルトの名無しさん
2009/07/23(木) 02:46:430302デフォルトの名無しさん
2009/07/23(木) 07:43:420303デフォルトの名無しさん
2009/07/23(木) 09:00:28ABAさんのゲーム
poeny
芝が生えるゲーム
0304デフォルトの名無しさん
2009/07/23(木) 09:19:460305デフォルトの名無しさん
2009/07/23(木) 19:24:560306デフォルトの名無しさん
2009/07/23(木) 20:28:19あるの?
0307デフォルトの名無しさん
2009/07/23(木) 20:57:570308デフォルトの名無しさん
2009/07/24(金) 00:01:490309デフォルトの名無しさん
2009/07/24(金) 16:54:34後は研究や仕事のデータ処理に使ってる人がいるくらいで
公開されたアプリケーションはあんまりないよね
0310デフォルトの名無しさん
2009/07/24(金) 18:55:080311デフォルトの名無しさん
2009/07/24(金) 20:11:26現状言語自体が不安定すぎだしコンパイラの検証・バグ取りも済んでいないので、
放棄不可でメンテナンスが必要なものには使えないというのが実情かな。
言語自体の素性は良いので自分専用のツールを作るにはもってこいだが。
0312デフォルトの名無しさん
2009/07/24(金) 20:21:110313デフォルトの名無しさん
2009/07/24(金) 20:31:35今後はJVMかLLVMの上で動く言語を考えるべきじゃなかろうか。
0314デフォルトの名無しさん
2009/07/24(金) 20:36:100315デフォルトの名無しさん
2009/07/24(金) 20:40:39現状は、最新世代レベルの記述力を持ってバイナリをゲロる言語という感じだが。
0316デフォルトの名無しさん
2009/07/24(金) 20:55:070317デフォルトの名無しさん
2009/07/24(金) 21:03:080318デフォルトの名無しさん
2009/07/24(金) 21:09:57MonaOS?
0319デフォルトの名無しさん
2009/07/24(金) 21:12:300320デフォルトの名無しさん
2009/07/24(金) 21:34:31GCアルゴリズムが選択出来るようになってるんだろうか。
0321デフォルトの名無しさん
2009/07/24(金) 21:47:460322デフォルトの名無しさん
2009/07/24(金) 21:50:44極端な話ライブラリさえあればH○Pみたいな言語仕様でもアプリを書いてもらえるのに、
言語だけどんどん改訂していくものだからいつまで経っても良いサイクルに入らない。
0323デフォルトの名無しさん
2009/07/24(金) 22:27:13こういうのはある
http://wiki.xomb.org/index.php?title=Main_Page
0324デフォルトの名無しさん
2009/07/25(土) 01:48:56選択できるようにする必要あるの
0325デフォルトの名無しさん
2009/07/25(土) 01:51:51ビルド時にオプション指定できる程度で十分だろうけど。
0326デフォルトの名無しさん
2009/07/25(土) 02:38:02いや、少なくともDに関しては
「仕様が固まってないから」という理由が大きい。
だって、せっかく作ったものでも、
ちょっとバージョンが変わるだけでコンパイルさえ通らなくなるようじゃ
怖くて大規模なものには手を出せない。
バージョンアップを楽しめる一部の人を除いて。
0327デフォルトの名無しさん
2009/07/25(土) 02:57:113.4には入ったんですが、3.5には対応してないってことなんですかね?
0328デフォルトの名無しさん
2009/07/25(土) 05:08:340329327
2009/07/25(土) 06:49:540330デフォルトの名無しさん
2009/07/25(土) 11:18:12これについて解説お願いします。
0331デフォルトの名無しさん
2009/07/25(土) 12:25:03向こうのレスにある
> テンプレートとプリプロセッサの黒魔術で無理矢理DSLを作ってどうにかする
だよ。
auto result = linq!q{
from n in numbers
where n % 2 == 0
select n
};
0x風の書き方にするとauto result = linq<"from ... n">というような式で、
linq = テンプレート関数か何かを指すシンボル。
! = テンプレートの明示的インスタンス化。テンプレートパラメタ(cppで言う<>の中身)を続けて書くと括弧が省略できる。
q{ .. } Dで有効なトークンのみを記述することが出来る文字列リテラル(これがテンプレートパラメタ)
linqの中身をコンパイル時または実行時パーサにすると、そういう構文が書けるというお話。
しばらく前にお遊びで作られた黒魔術の一つ。
実用に供すことも可能だが、やった人は知らん。
0332デフォルトの名無しさん
2009/07/25(土) 12:29:39向こうを久方ぶりに見たが、まったく同じ内容のレスがあるとは
■ このスレッドは過去ログ倉庫に格納されています