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)
0175デフォルトの名無しさん
2009/07/09(木) 12:42:330176デフォルトの名無しさん
2009/07/09(木) 16:12:340177デフォルトの名無しさん
2009/07/09(木) 18:48:380178デフォルトの名無しさん
2009/07/10(金) 00:09:45サクラたんかわいいよサクラたん
0179デフォルトの名無しさん
2009/07/10(金) 03:30:290180デフォルトの名無しさん
2009/07/10(金) 03:35:230181デフォルトの名無しさん
2009/07/10(金) 08:17:22D.om書かないとダメだけど
0182デフォルトの名無しさん
2009/07/10(金) 08:52:31D向きだね
うpもなしに(ry
0183デフォルトの名無しさん
2009/07/10(金) 23:00:08むしろDWTって今誰か開発続けてるの?
0184デフォルトの名無しさん
2009/07/11(土) 00:19:120185デフォルトの名無しさん
2009/07/12(日) 21:33:520186デフォルトの名無しさん
2009/07/12(日) 23:16:12http://dsource.org/projects/poseidon/browser
0187デフォルトの名無しさん
2009/07/13(月) 02:43:480188デフォルトの名無しさん
2009/07/13(月) 02:50:500189デフォルトの名無しさん
2009/07/13(月) 12:08:510190デフォルトの名無しさん
2009/07/13(月) 12:47:23コンパイラ見つからないと出るのですが
プロジェクト生成時にパスは設定してます
0191デフォルトの名無しさん
2009/07/13(月) 12:53:05C++のboost::serializationみたいなやつ。
0192デフォルトの名無しさん
2009/07/13(月) 13:29:310193デフォルトの名無しさん
2009/07/13(月) 13:31:50ないですか。どうもです。
0194デフォルトの名無しさん
2009/07/13(月) 13:34:560195デフォルトの名無しさん
2009/07/13(月) 20:12:110196デフォルトの名無しさん
2009/07/13(月) 20:37:21>>190と同じくコンパイルができない。
秀丸のファイルタイプ別の設定ファイル探すか書いてみるか
0197デフォルトの名無しさん
2009/07/13(月) 22:07:440198デフォルトの名無しさん
2009/07/13(月) 23:39:190199デフォルトの名無しさん
2009/07/13(月) 23:40:160200デフォルトの名無しさん
2009/07/14(火) 00:07:14macとかfreebsdとかサポートするため。
0201デフォルトの名無しさん
2009/07/14(火) 01:30:41std.outbufferだな
0202デフォルトの名無しさん
2009/07/14(火) 01:40:49テキスト形式で書き出すならstd.file.slurp()が読み込みに使えそう
シリアライズってバイナリ限定だっけ?
0203デフォルトの名無しさん
2009/07/14(火) 07:18:360204デフォルトの名無しさん
2009/07/14(火) 07:26:380205デフォルトの名無しさん
2009/07/14(火) 07:44:160206デフォルトの名無しさん
2009/07/14(火) 16:44:45待ちきれなくてgdcに2.031移植しようとしたが挫折したorz
0207デフォルトの名無しさん
2009/07/14(火) 18:05:450208デフォルトの名無しさん
2009/07/14(火) 18:17:510209デフォルトの名無しさん
2009/07/14(火) 19:03:37>>1の本家には載ってないです。
googleで検索したら
ttp://f17.aaa.livedoor.jp/~labamba/?std.outbuffer
> バイト順(エンディアン)を指定する場合は、OutBuffer? の派生クラスを使ってください。逆のbyteの配列からデータに復元するには InBuffer? を使います。
と出てきたものの、これ以外に書かれていないです。
一体どういうことなのでしょう・・・。
0210デフォルトの名無しさん
2009/07/14(火) 20:54:19interface It {}
class A {
Rebindable!(const(It)) ireb; // ItがObjectじゃないためNG
Rebindable!(const(A)) reb;
const const(A) get() {
return reb.opDot; // RebindableのopDotがconstじゃないためNG
}
Rebindable!(const(A))[string] assoc;
void put(const(A) a) {
// opAssignが呼ばれてしまい実行時エラー
assoc["test"] = a;
}
}
('A`) ウボァー
0211デフォルトの名無しさん
2009/07/14(火) 21:27:380212デフォルトの名無しさん
2009/07/14(火) 21:28:350213デフォルトの名無しさん
2009/07/14(火) 22:04:06たぶんこれpublicにしたかったんだな
0214デフォルトの名無しさん
2009/07/15(水) 00:46:080215デフォルトの名無しさん
2009/07/15(水) 07:45:33この互換のなさ酷すぎ。。。
0216デフォルトの名無しさん
2009/07/15(水) 08:06:23> C#になったとたんC時代のソースがことごとくコンパイルできない
>
> この互換のなさ酷すぎ。。。
といっているようなもの。
0217デフォルトの名無しさん
2009/07/15(水) 08:37:35っていうか互換性重視して切り捨てられない部分が出てくるよりよっぽどいいよ。
0218デフォルトの名無しさん
2009/07/15(水) 08:37:460219デフォルトの名無しさん
2009/07/15(水) 13:03:05>>217 C++とは別の方向性を持った言語の行く末を見守るスレでもあります
0220デフォルトの名無しさん
2009/07/15(水) 14:57:380221デフォルトの名無しさん
2009/07/15(水) 15:02:340222デフォルトの名無しさん
2009/07/15(水) 15:21:090223デフォルトの名無しさん
2009/07/15(水) 15:49:12std.socketを使うことになるんですかね?
難しそうですね。
Cで書いて、それを呼び出す方が楽かなぁ。
0224デフォルトの名無しさん
2009/07/15(水) 15:54:250225デフォルトの名無しさん
2009/07/15(水) 16:05:12Cでいうところのwininet.hがDにはなくないですか?
0226デフォルトの名無しさん
2009/07/15(水) 17:19:450227デフォルトの名無しさん
2009/07/15(水) 17:29:582行でできるよ
0228デフォルトの名無しさん
2009/07/15(水) 17:31:14wininet.hだけでも3900行もあるし、Cで必要な部分だけラッパを書いた方が楽かなぁと。
0229デフォルトの名無しさん
2009/07/15(水) 17:32:55なるほど。D1のTangoにはあるんですね。
0230デフォルトの名無しさん
2009/07/15(水) 17:33:120231デフォルトの名無しさん
2009/07/15(水) 17:33:140232デフォルトの名無しさん
2009/07/15(水) 17:41:27今後に期待ですね。
>>231
ぐぐり方が悪いのか見つからないです。
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のそれと同じみたいだからそれ見ればいい話か…
■ このスレッドは過去ログ倉庫に格納されています