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


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

D言語 Part18



1 名前:デフォルトの名無しさん [2008/04/14(月) 15:16:22 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)

■参考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/3da5oa (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)

331 名前:デフォルトの名無しさん [2008/05/28(水) 00:39:32 ]
DでBasicっぽいゲームエンジン作ろうかと思ってるのだがやめておいたほうがいいだろうか・・・

332 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:45:54 ]
D言語で最新のDirectX SDKを叩ける方法の方が…

333 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 02:15:29 ]
>>331
いや、やってみてから挫折しろよ

334 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 05:49:30 ]
>>332
最新に完全対応かどうかはわからないけど
DSourceにあるBindingsで叩ける
最新SDKとリンクさせてるけど、いまのところ問題ない。

335 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 06:27:21 ]
>>324
何がしたいっていうか、そういう遊びだろう。
勝敗の決まらない、操作そのものを楽しみ続ける格闘ゲームみたいなものだから、
基準がまったく定まらず、お互いにまったく噛み合わないこと自体も
彼らの求める相互排他とか衝突を生み出すいいきっかけなんだよ。

336 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 07:27:03 ]
>>327
なんでD言語のキャラクターはこんなにムカつくんだwww

337 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 08:51:39 ]
>>334
まじ?Bindingsってなんか依存関係でコンパイラがエラーはくんじゃなかった?

338 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 11:11:11 ]
ロゴがある言語って少ないんだからあのロゴキャラ消してもいいような…

339 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 11:20:34 ]
日本以外はサマータイムやってるから理論はいかがなものかと。
ウザカワキャラってことで売り出していこうぜ,



340 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 11:41:16 ]
>>337 そんなのとっくに直ってる

341 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 13:57:47 ]
GDI+ の D言語へのポートってないんですか?
自分でシコシコ作るしかないのかな…

342 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:33:41 ]
大規模やらDirectX10やら、やたら勇者がおおいな

343 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:44:21 ]
そう言えば日本のサマータイム導入はどうなるんだろう。
他の導入済み都市と比べて夏と冬の日照時間にほとんど差がないから意味がないような。
また政治家の手続き遊びによる金稼ぎが。

344 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:29:27 ]
毎年、切り替えの日に仕事遅刻するのが目に見えてるからやめてほしい。

345 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:41:17 ]
なんの話だよ

346 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:58:53 ]
サマータイムの話では。

347 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:01:28 ]
DigitalMars のサイトが……

348 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:29:54 ]
と思ったら蘇ってた

349 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:49:18 ]
一瞬だけ変なところ飛んだんだが、何事だったんだろうな



350 名前:デフォルトの名無しさん [2008/05/30(金) 01:11:16 ]
glutを使いたいのですが、リンク時に
Error 42: Symbol Undefined _glutInit
というエラーが出てしまいます
調べてみたところ、おそらくglut32.libが原因のようで、
glut32.libは DIDE with D のものを使うといいとの事ですが、
DIDE with Dのサイトがもう見れなくなっていて困っています。
DIDE with D以外だとどこのglut32.libを使えば動くんでしょうか?
ちなみにimplib -a glut32.lib glut32.dl で作ったものと
yaneSDKに入っているもの、DedicateDのglut32.libを試しても同じエラーが出てしまいました。

それともなにか他の原因があるのでしょうか?
原因がわかりそうな方お願いします。

351 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:15:26 ]
>>350
.zipで上げてくれたら誰かやってくれるかもしれんよ

352 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 02:15:14 ]
SDL + opengl opengluなら普通に使えるけどglutは試してないなぁ。

353 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 02:33:11 ]
>>350
DLLがあるなら、implib /s glut32.lib glut32.dllでいいと思うのだが

354 名前:353 mailto:sage [2008/05/30(金) 03:51:53 ]
よく調べたら、extern(Windows)な関数のライブラリだった。
↑は使えない。
まずwww.xmission.com/~nate/glut.htmlからvc++用のバイナリを落としてくる。
それから、glut32.libをcoffimplib.exeでOMFライブラリに変換して、
それを使えば大丈夫なはず。

355 名前:353 mailto:sage [2008/05/30(金) 04:06:26 ]
あと、glutInitの宣言にextern(Windows)がついてないと思われるので、付けるように。

というか、むしろこっちが原因かも。
libファイルがどうこうじゃなくて。
yaneSDKに入っているものでも大丈夫だったし。


356 名前:353 mailto:sage [2008/05/30(金) 04:23:03 ]
>あと、glutInitの宣言にextern(Windows)がついてないと思われるので、付けるように。
extern(C)をextern(Windows)に変えろって意味ね。


357 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 04:37:31 ]
世話焼き萌え。

358 名前:350 mailto:sage [2008/05/30(金) 11:55:05 ]
>>355
extern(Windows)をつけたらできました。
レスくれた方ありがとうございます。
勉強になりました

359 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:50:34 ]
GLでがりがりやってる方もいるんだねぇ・・・



360 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:29:20 ]
さて、IDEはまだかね?

361 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:44:58 ]
っ Descent

362 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:05:09 ]
つ Entice Designer

363 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:07:13 ]
っ SASI


364 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 02:32:17 ]
っ Poseidon

365 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 06:30:29 ]
JDT並みの自動補完がほすい

366 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:12:34 ]
つ Descent
・・・より優れているのか?

367 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:40:13 ]
Descent はすぐに自動補完がぬるぽで落ちて、自動補完聞かないただのエディタと化してしまうからいまいち。
他はしらん。

368 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 11:37:16 ]
そんな現象なったことないな

369 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:03:41 ]
昔のVisualStudioはよくそんなことなってたよなw
Descentでなったことはないわ。



370 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 03:28:47 ]
DescentでMake使えるようにならんかなぁ

371 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 03:34:26 ]
と思ったらEclipseのBuilderから普通に使えた

372 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:37:39 ]
mixin(import("con"));

これ通らないのかよー

373 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:42:58 ]
>>372
-J.

374 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:12:58 ]
それしてもコンパイルは通ったように見えるけど、実際は何も生成されない。

375 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:14:13 ]
何も生成されない、というか空文字列として扱われてるみたい。

376 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 08:25:02 ]
>-J.
これがなんかの絵文字かなやんだおれは
修行がたりない

377 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 15:40:40 ]
>:-J.

378 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:39:49 ]
|| -J. |
- ノ

379 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:33:30 ]
||||
-J
o/



380 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 08:02:35 ]
やってることが暇人すぎてわろた

381 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:40:20 ]
何か建設的な話題はないのか

382 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:03:30 ]
2010年にD++が出る

383 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:17:42 ]
D#とDavaとDoberonも出るよ

384 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:42:15 ]
DaskellとかDCamlとかDispに期待。

385 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:51:46 ]
DOBOLだな

386 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:53:36 ]
最近はバグ取れてきた?
そろそろ本格的に使ってみようかと思うんだが(趣味でだけど)
JavaとRubyに慣れた身にはC++は苦痛・・・・・・代替言語が欲しい

387 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:58:32 ]
javaに慣れてるならライブラリが薄いこと以外はスーパーセット的に使えるだろ
rubyみたくクラスに機能をインジェクションしようと考えてテンプレートをいじる遊びもできるし

388 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 11:02:13 ]
>>386
バグは普通に使う分にはすでにあまり問題ないレベルであるように感じる。
趣味で追いかける分にはD言語は愉快な言語だと思う。

389 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:20:19 ]
struct Matrix(T, int M, int N) {
const Matrix!(typeof(T + U), M, N) opAdd(U)(Matrix!(U, M, N) that);
}

こんな感じでテンプレートの引数として使われてるテンプレート引数って推論できないものかなあ。



390 名前:386 mailto:sage [2008/06/07(土) 15:23:42 ]
>>387-388
ありがと。何よりもまず使ってみる

391 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:44:05 ]
質問。

template hoge(int hage) {
 void hogefunc() { ... }
}

void func(int arg) {
 mixin hoge!(arg);
 hogefunc();
}

って、どう展開されるんですか?

392 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:47:00 ]
argはコンパイル時定数じゃないからテンプレートに渡すことはできない。

393 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:21:15 ]
でもコンパイルとおっちゃうんですよねー・・・。

不定値になるのかな?

394 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:28:14 ]
バグでしょ。

395 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 07:59:20 ]
CTFEが働いているとかはないのか

396 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:29:42 ]
>>391
何故か0が渡されてる
codepad.org/qbKJaxYV

397 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:24:22 ]
typedefで初期値を変えても0が渡されてるからint.initですら無いようだねぇ。

398 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:35:15 ]
>>395
CTFEにしても、関数はランタイムでも実行できないとだめだから、
コンパイルが通るのがおかしい。

399 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 18:03:26 ]
既出のバグなのかな?
あの大量のリストを全部確認するのはつらいよなあ…
1000近くあるし英語だし…
というかこれも結構重複とかしてるんだろうなぁ…



400 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:06:25 ]
連想配列をイテレートする便利クラスってなかったっけ?

キーの大きい順にとか、値の小さい順にとかやりたいんだけども。

401 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:03:47 ]
しっかりしたライブラリなら、
  dsss build --doc
でドキュメントが生成できるのな。知らなかったぜ。
dsss net install は未だに成功した試しがないんだがw

402 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 08:04:55 ]
dmdとcandydocで作るのと一緒のやつだっけ?
そういえばdmd -doc使ってないなあ
プロファイラとコードカバレッジとユニットテストが
dmdでできるのは重宝しているが

403 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 10:45:14 ]
>>400
foreach (v; aa.keys.sort) {...} とかじゃ不足?


404 名前:403 mailto:sage [2008/06/09(月) 10:48:26 ]
微妙に間違えた。
キーで回すんだから foreach (k; aa.keys.sort) と書かなきゃ。


405 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:45:00 ]
値でソートしたり、値が一致したときにキーにフォールバックしたりしたいの。

406 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:03:57 ]
>>404
まだ微妙じゃないのか?
foreach (v, k; aa.keys.sort) じゃね?

>>405
>フォールバック
ちくしょう、おいらにゃ意味がわかんねぇ

407 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:01:16 ]
>>406
書くならこうだろう。
foreach (i, k; aa.keys.sort)

408 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:19:56 ]
今無性にimport文でワイルドカード使いたい。Javaみたいに。ニュースグループではそんな無駄な
機能いらねぇよ派が多数だったみたいだけどな。Tango のライブラリとか細かすぎていちいち
書くの面倒になっちゃうよ。DFL みたいに all.d みたいなファイルを用意しておけば、まぁ
似たようなことはできそうなんだけど。

409 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:45:53 ]
Tangoにもまとめてimportする用のモジュールあるじゃん。



410 名前:408 mailto:sage [2008/06/10(火) 03:40:56 ]
…あ。tango.group なんてあるのね。>>409 のお陰で得した気分だ、ありがとう

411 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 04:09:13 ]
処理速度ってC++より早いのか?

412 名前:デフォルトの名無しさん [2008/06/11(水) 08:37:58 ]
また馬鹿げた質問を
単純ループのベンチマークでもとって比べるか?w

413 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 08:49:25 ]
処理速度気にするなら単純なコードでコンパイルして逆汗して比較汁
コンパイラの出来も同時に判る
組み込みやってた知り合いはそれやってたらできたてのコンパイラのバグみつけた


414 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:00:11 ]
string s = Format!("Arg %s = %s", "foo", 27);
を実行しようとすると、
cannot implicitly convert expression ("Arg %s = %sfoo27") of type const(char[]) to invariant(char)[]
て怒られた。

なんでstringで受けられないの? ってことと、あと文字列が連結されてるだけで置換されてない……。
公式のサンプル通りなんだけど、ドキュメント古くなってる? 俺がなんか変なことしてるのかな。

415 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 13:33:38 ]
metastringsのソース見れば分かるけど返ってくるのはconst char[]なので,
stringでは受けられないんじゃないかなぁ(実際はconst(const(char[]))かな).
使うときはいつもautoなので気にしてなかった.

それと,Formatの中ではchar[]で分岐してるので,
ここをconst char[]に修正しないとまともにフォーマットされない.

416 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:46:29 ]
Formatはconst/invariant導入されてから壊れっぱなしだな。
めったに使わないから不自由はしてないけど

417 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:23:07 ]
trunkにあるから書き換えてくれていいよ!

418 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:28:58 ]
D言語楽しい!

419 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:41:53 ]
さいきんBill Baxterさんが本家メイリングリストに出てこないなぁ。
お忙しいのか?



420 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:27:19 ]
>>418
The old collection package will be deprecated prior to Tango 1.0.
こういうところがだろ?wwわかります。

421 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:09:15 ]
ttp://www.dsource.org/projects/tango/forums/topic/523
これか
なんでいきなりそんなことになんのよw
あまりにもbetaがbetaとして機能してねえw

422 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:11:20 ]
D言語使いには勇者が多いw

423 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 14:05:08 ]
linux版のThreadクラスって、処理が終わってもリソース開放しないのな
Threadクラスはガベコレが見てるから、別クラスを作るわけにもいかないし
phobos書き換えないと使えないってどんだけ
std.fileもなんかおかしいし
linux版ってもしかしてだれも使ってない?
windowsから移ってきてみたら、びっくりだ

424 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 15:36:39 ]
たまにはソースとか読んでみようと思ったのに、
コンパイラにくっついてるのってひょっとしてフロントエンドの部分だけ?
コード生成とか最適化とかの部分はどっか別のところにある?

425 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:10:26 ]
>>424 その辺はdmcと共有してて非公開だったと思う

426 名前:デフォルトの名無しさん [2008/06/13(金) 16:24:39 ]
>>424
フロントエンド部分だけがGDC用に公開されてる。

427 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 18:58:39 ]
ttp://www.dsource.org/
みれないようわーん

428 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 20:35:38 ]
>>427 もう見える

429 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:14:13 ]
dsource.org の鯖はあんまり栄養状態が良くないよな。鯖そのもの
だけじゃなく、プロジェクトも abandoned なのが多いし。



430 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:34:32 ]
windows やら unix やらばかりじゃなくて、
組み込みとかにも目を向けて欲しいんだが。


431 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:37:06 ]
組み込みでGCやなんやはオーバースペックじゃないか?

まあ、最近は組み込みっていってもWindows動いてたりするけどさ。

432 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:41:09 ]
最近の言語では一番組み込みに適用できそうな予感
ある程度のスペックのあるターゲットになるだろうけど

433 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 07:51:10 ]
>>429
終わってるプロジェクトとそうでないものを区別して欲しいな
最終更新日時でソートするだけでもいいけど

434 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:44:06 ]
tango、現trunkにて、tango.util.logパッケージでも破壊的な変更が…
いいぞ、もっとやれ(笑)

435 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:55:46 ]
うぉるたんからして破壊的な変更大好きだし。

436 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:06:52 ]
D好きはマゾですか

437 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:12:28 ]
破壊的な仕様変更は普及してない時期にしかできないw

438 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:27:41 ]
つまりDはいつまでも破壊的に変更できるわけですね!

439 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:32:35 ]
プロトタイプは一旦作ってソースを捨てるのが
正しい方法らしいからいいんじゃねw



440 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:10:22 ]
>>439
金と時間に余裕がなきゃできないけどなw
一度やってみたいよ。

441 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:27:46 ]
>>439,440
ありがとう、やってみる。


442 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:11:12 ]
>>441 何をだろう・・・

443 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:26:51 ]
>>441はうぉるたん

444 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:35:24 ]
TangoがDの命名規則に従う伏線とか…

445 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:45:37 ]
>>443
やめてくれww

446 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 08:48:48 ]
tango.text.Regex の正規表現のコンパイルの遅さに萌え

447 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 10:09:02 ]
gdc on MinGWのビルドがうまくいかん。
2.x系が使いたいんだが、
最近のバイナリってどっかにないかな?

448 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:04:51 ]
をるたんそろそろ更新をあたえてくれ〜

449 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:03:08 ]
tango.text.Regexがdebugビルド不可なのは、何の意図なのだろうか



450 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:03:47 ]
debugなんてのは臆病者のやることだ。

451 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 04:21:22 ]
臆病者と馬鹿者のどっちになるかってことだな。

452 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:54:06 ]
うぉるたんやプロパティの+=はまだかいの

453 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:08:26 ]
さっき食べたでしょ

454 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:50:05 ]
C++のstd::vectorぽいことをしたいのですが

動的配列+phobosのalgorithmで頑張る?
→push_backしたい。
→remove_if等が存在しないような?

tangoのcollectionを使う?
→sortやremove_ifをしたい場合、toArrayで配列にしないと無理?
→stable_sortが存在しないような?

いまいちこれだという方法が無い気がするのです。
なにか良いライブラリ等ありますでしょうか。

455 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:47:21 ]
→push_backしたい。
int[] a;
a ~= other;

→remove_if等が存在しないような?
2.x系なら
ttp://www.digitalmars.com/d/2.0/phobos/std_algorithm.html#inPlace

int[] arr = [ 1, 2, 3, 4, 5 ];
// eliminate even elements
auto r = eliminate!("(a & 1) == 0")(arr);
assert(r == [ 1, 3, 5 ]);
assert(arr == [ 1, 3, 5, 4, 5 ]);


で無理かな?

456 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:30:55 ]
Version D 2.015 Jun 17, 2008
PICマイコン対応…と夢想しかけた。

457 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:36:30 ]
* Function templates can now deduce the return type if they are declared with auto.
戻り値型推論キター

* Added Constraints to templates.
どうせならconceptまで実装してくれよ。

458 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:44:30 ]
(1) auto func(T)(){ return 1; }
(2) auto func(){ return 1; }

(1)は通るのに(2)は通らない。けち臭いなあ

459 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:57:25 ]
auto func()(){ return 1; } でおk



460 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:58:50 ]
ああ、テンプレートはパラメータなしでもよかったのか。
でも、ばっちいお…

461 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:29:31 ]
戻り値の型推論!!
でもなんで無名関数とテンプレートだけなんだ

* Added Constraints to templates.
これは何かすげーなw

462 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:32:20 ]
テンプレートの型推論のルーチンを
使い回すのが難しいコードになってるとか邪推。

463 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:51:41 ]
無名関数の戻り型推論って結構まえからできなかったっけ?

464 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:01:38 ]
そだね
今回できるようになったと言ってるわけじゃないんだわ

465 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:14:16 ]
auto f()(){
typeof(return) a;
return a;
}

void main() {
f();
}

コンパイラしんじゃうよー

466 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:03:34 ]
Constraintにキーワードifつかっちゃったのか。
なんか気持ち悪いな

467 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:37:43 ]
予約語はできるだけ増やさない、みたいな方針があるのかな。
前から結構使いまわしてるよね。

468 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:05:49 ]
ちょっとlibpngが使いたいと思ってポートがあるかなと思って検索してみたら、
こんなスレがひっかかってちょっとワロタ

D言語でエロゲーつくって
ttp://pc11.2ch.net/test/read.cgi/gamedev/1091256780/


469 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:09:43 ]
DからDirectXってそんなに面倒そうでもなさそうなんだがな・・・・・?
Cとのインターフェースはあるんだから



470 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:12:49 ]
すでに実例あり
ttp://video.google.com/videoplay?docid=-3577027688253678001&q=D%E8%A8%80%E8%AA%9EBOF+2008-03-01&ei=mUFZSJScBobCwgO55s2IDg

.hから.dにするときにマクロの展開だけが面倒

471 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:21:43 ]
>>470
正真正銘プロの犯行に吹いたw

472 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:27:09 ]
>>470
なんという勇者w
DirectXなんてほとんど使ったことないが、
面白そうだからちょっといじってみるか

473 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:32:51 ]
>>468
まったく人がいなくて吹いた。
SDL+OpenGLのほうがポーティング揃ってるし、DirectX使うより楽だとおも。
たしかゲーム用にラップしたライブラリあったし。

あとフリーゲームの『去人たち』って、エロじゃないけどノベルゲで、D言語で作ってたはず。
ただシステム糞重くてうわーって感じだったけど。

474 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 09:45:23 ]
>>465
呼び出す側で古代C言語みたいにvoid型でキャストしよう。

475 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 12:14:53 ]
DのIDLコンパイラとか誰か作ってないのかなあ

476 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 14:15:34 ]
>>469
DirectXはCOMオブジェクトだから、ポーティングの仕方がCライブラリとはちょっとだけ違う。

477 名前:デフォルトの名無しさん mailto:構文上無理かね? [2008/06/19(木) 16:37:52 ]
ここまで型を書かなくてよくなったら
もういっそのこと無名関数テンプレートが欲しくなったんだがw
auto dg = (T,U)(T t, U u){ return t+u; };
するとこうなって
auto dg = (auto t, auto u){ return t+u; };
最終的にはこうか?w
auto dg = (t, u){ return t+u; };
これなんてマクロ?

478 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 16:40:21 ]
つーか、macroキーワードが使える日が早く来ればそれでいいんだよ…

479 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 16:50:40 ]
無名関数テンプレートが欲しいのは分かるが、できるとしても
alias (T,U)(T t, U u){ return t+u; } dg;
が精一杯。



480 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 17:09:07 ]
>>477
どうぞ。

auto dg = new class {
auto opCall(T, U)(T t, U u) {
return t + u;
}
};

481 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:27:30 ]
writeln(typeid(typeof((int i){})));

2.015でデリゲート型の引数が表示されないんだけど、前からだっけ?

482 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 21:08:46 ]
>>470
この会社に入りたい

483 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:04:03 ]
>>481
前からじゃない?
↓1.0
codepad.org/CREaEBun

484 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 02:58:03 ]
なんでBufferedFileはデストラクタでcloseしないんだ

とおもってソース見てみたら、そもそもデストラクタなかった。
どうなってんだよ。

485 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 03:26:35 ]
> これはつまり、 デストラクタからはメンバオブジェクトを参照できないことを意味しています。
これがなければデストラクタも使い物になるというものの…

486 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 03:57:45 ]
とりあえず必要だと思うのは、scopeメンバ変数だな。
コンストラクタで一回だけ初期化できて、オブジェクトがdeleteされるときに道ずれにdeleteするの。

487 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 04:04:44 ]
Tango導入しようかなあ…
phobosは統一性なさすぎて辛い…

488 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:30:25 ]
>>485
ファイルハンドルのような開放しなければならないメモリはガベコレの外にあるのだから、デストラクタに開放処理を書いても問題ないと思うけどね。

489 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:33:35 ]
IDisposable的なhackが必要になるってことか。



490 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 15:29:12 ]
>>485
これって、メンバオブジェクトをdeleteすることも認められないのかな?

491 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 18:20:16 ]
あーもー英語使わなくてもphobosのtrunkにコミットできたい

492 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 19:39:11 ]
staticメンバにリストを作って管理とか無理かな

493 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 21:29:05 ]
>>486
そんなのイラネwwww
って思ったけど、必要だな・・・

494 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 21:45:08 ]
>>488
たしか、デストラクタって呼ばれる保証はないんじゃなかったっけ?
だとしたら確実に行われなければならない処理をデストラクタに書くことはできないと思うのだけど。

495 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:10:12 ]
デストラクタからcloseとかの後始末関数を呼べばいいよ。
scope変数に入れたときは、必ずスコープアウトするときにデストラクタ呼ばれるから。

496 名前:デフォルトの名無しさん [2008/06/21(土) 23:15:25 ]
C++で言うところの純粋仮想関数のように、
抽象クラス側のメンバ関数定義において
派生クラスで必ず上書きをする事を明示する修飾子ってありますか?

497 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:19:56 ]
abstract

498 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:26:36 ]
>>497
ありがとうございます!

499 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:27:51 ]
abstract属性



500 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 03:41:51 ]
  auto outfile = new FileConduit("output.txt", FileConduit.WriteCreate);
  auto file = new FileConduit("hogehoge.txt");
  auto buf = new BufferInput(file);
  while (buf.fill(buf) != IConduit.Eof) {
    auto str =  buf.slice(buf.readable);
    Cout.output.write(str);
    outfile.write(str);
  }
Tango なんだけど、Conduit から入力したものを複数の Conduit(?) に出力したいとき、
こういう風に一回バッファを介すしかないの?なんだか妙に生ぐさいやり方で気持ち悪いんだけど、
もっと良い方法ない?Conduit, Buffer, Input/OutputStream のあたりの仕組みが全く理解できない

501 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 05:45:30 ]
OutputStreamを継承して、複数のOutputStreamに流し込むようなオブジェクトを作ればいいのでは?
codepad.org/hco2juAc

502 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 07:15:28 ]
std.algorithmって今のところ配列にしか使えない?
自作のコンテナでも、イテレータ定義すれば使えるのかなと思ったんだが、そもそもイテレータの作り方がよくわからん。
opStarAssignとかないし。

503 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:34:52 ]
>>502
それ、以前調べたけどまだ無理だと思う。
std.algorithm の中でイテレータに対して foreach range 文を使ってるんだけど
現状では foreach range 文をカスタマイズできないから、独自イテレータを定義できない。

504 名前:500 mailto:sage [2008/06/22(日) 13:27:30 ]
>>501
おお、わざわざdクス。その方向でいってみるよ、ありがとう。

505 名前:500 mailto:sage [2008/06/22(日) 17:02:06 ]
あやしい InputFilter を作ることで、どうやらやりたいことが出来たみたいだ。
改めて>>501にdクス。
ttp://codepad.org/FtRWpF3b

506 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 19:23:09 ]
ConduitとStreamってどう違うの?

507 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 22:13:10 ]
IConduitはInputStreamかつOutputStreamなのだから、同じなんじゃないかと。
ただ、どうやらConduitがベースになってて、他の便利なストリームに突っ込んで使うのがいい感じらしい。
Conduitは「入出力先」、Streamは「使い方」みたいな使い分けなんじゃないかと思う。
あと、InputStreamとOutputStreamはほかのStreamとは若干違って、Conduitの役割をInputとOutputで分割したようなものだと思って使ってる。

508 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:15:20 ]
>>503
なる。どうもありがとう。
……がっかりだーorz

509 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 09:16:36 ]
はぁ?手軽に最高速がDの売りなんじゃないですかぁ?
バカなの?

ぶっちゃけC++のほうが100万倍マシ



510 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 09:22:31 ]
ええ全く、ウォルタンに言ってやってくださいよー

511 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 09:25:52 ]
>>509
元ネタはRubyだったのに何でC++に変えたの?

512 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 13:40:30 ]
複数ファイルを一度にimportする方法ってありますか?

// ファイル a.d
module  a;

// ファイル b.d
module b;

とかあった場合に

// ファイル include.d
module include;
import a;
import b;

とかして
import include;
でaとbをimportみたいにしたいのですが。

513 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 14:02:24 ]
public import a, b;
とかかな。
調べずに発言

514 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 14:43:31 ]
文字配列の連想配列の配列の配列の長さを変えるにはどうしたらいいのでしょうか
int main(){
char[][char[]][] list;
list.length = 100;
return 0;
}
とすると途中で止まってしまいます。
どのようにしたら止まらせずにlistの長さを伸ばしたり縮めたりできるのでしょうか


515 名前:514 mailto:sage [2008/06/23(月) 14:46:04 ]
すみません既出のバグなんですね…
>264試してみます

516 名前:514 mailto:sage [2008/06/23(月) 15:04:03 ]
すみません、やっぱり分からないです
nullで埋めるというのも分かりません
list[0] = null; とやっても使えないですし

連想配列を含む配列は使わない方がいいのでしょうか

517 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:30:43 ]
別にそれ自体として使わないほうがいいってことはないだろうが、
バグがあるんだから使わないほうがいいだろう。実際に使えないわけだし。

518 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:41:51 ]
動いた
codepad.org/og1d1ogP

519 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:44:49 ]
連投失礼
しばらくしたら消えるみたいだし、一応貼っておく
--
int main(){
typedef char[][char[]] Map = null;
Map[] list;
list.length = 100;
writef(list.length);
return 0;
}

--
100



520 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:51:37 ]
しばらくといっても結構長いみたいだね
>>20のもまだ消えてないみたいだし

521 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 19:12:28 ]
>>20
template Res(int N, O)
{
res!(N) << O.toString();
in { assert(O >> N); }
invariant O = N;
enum O = N;
throw new O(">>" ~ N.toString());
}

mixin Res(1, 乙);


はっちゃえ

522 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 19:43:26 ]
何のコードかと思ったら>>1乙とはw

523 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 21:02:01 ]
foreach( i, v, vs) {
 if( v.noneed ) {
  vs.remove(i);
 }
}

これが、2.0.15でできなくなった・・・
しかたないか

524 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 21:11:30 ]
foreach( i, v; vs) {
じゃなくて?

525 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 21:21:00 ]
あ、それそれ ごめん

526 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 23:08:02 ]
>>518
ありがとうございますm(_ _)m
不思議だ…
何でtypedefかませると動くんだろう

もう構造体かクラスかで囲ってそれを配列化しようかとか思ったけど
凄い人はやっぱりいるもんだなぁ

既出だろうけどモジュールと同じ名前のディレクトリがあるとldで躓いてコンパイル失敗するね
>519を動かそうと思ってn.dってファイル作ってdmd nさせたら
nってディレクトリがあるもんだから失敗した\(^o^)/

527 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:17:50 ]
ttp://dsource.org/forums/viewtopic.php?t=3279
このやたらハイテンションな中国人によると、Entice Designer で日本語が入力できない問題は、
同梱の Scintilla のバージョンが古いせいらしい。このポストのとおり、SciTE のバイナリを
落としてきて、SciLexer.dll -> enticelex.dll にリネームして上書きすれば日本語が通ったよ。
Entice、補完はいまいちだけど Descent より軽いので、漏れはコードエディタとして重宝してる。

528 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:30:56 ]
連想配列のlengthは読み取り専用だから>>261は動かなくて当然だけど、
>>514は連想配列か普通の配列かの判断が甘いから起こるのかな。
typedefすれば確実に普通の配列だとわかるからlengthに値をセットできる、と。

529 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:47:32 ]
>>528
その理屈はおかしい、
>>261のaは連想配列ではなくて動的配列だし、
typedefすることによって型の曖昧さが減るということもありえない。



530 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 07:09:37 ]
実行環境がLinuxだからとかではなくて?

531 名前:518 mailto:sage [2008/06/24(火) 08:01:25 ]
一応説明すると、
配列のところ読んだら連想配列も動的配列も長さ0で初期化されるとあったから
ふとtypedefするときに初期値を新しく指定できるっていうのを思い出して試しただけだったり
(最初は適当な配列で初期化しようとしたけど、連想配列リテラルがよく分からないからnullにしたら動いた)
試しにtypedefの
= null
を削るとcodepadでもTimeoutする

何で初期値指定すると動くのかとかはよく分からんが

532 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 15:15:58 ]
>513
できました!ありがとうございます。

533 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:30:23 ]
>>531
本来、nullと長さ零の配列は同じ扱いのはずなんだけどねえ

534 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:55:41 ]
全く同じわけではないらしい

void main()
{
int[] a = null;
int[] b = [1,2,3];
b.length = 0;
assert(a == b); // success
assert(a is b); // fail
}

535 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:30:46 ]
>>533
最初の頃はそういってたけど、いつの間にか仕様が変わったらしい。

536 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:08:17 ]
下記のように場合に、インナークラスから自身が持つフィールドと同名の
親階層のフィールドにアクセスしたい場合の方法ってありますか?
superは継承の場合だし、CTest.Value_はコンパイルエラーに。

class CTest
{
 int Value_;
 CInner Inner_;
 class CInner
 {
  int Value_;
  void Function(){
   // 自身のValue_を表示
   writefln("%d",Value_);
   // 親階層のValue_を表示する場合は??
   writefln("%d",???);
  }
 }
 this(){
  Value_ = 1;
  Inner_ = new CInner();
  Inner_.Value_ = 2;
 }
 void Function(){
  Inner_.Function();
 }
}

537 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:28:43 ]
>>536
ttp://www.kmonos.net/alang/d/2.0/class.html#nested

538 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:50:47 ]
>>537
ありがとうございます。
this.outer.Value_ でいけました。


539 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 13:42:23 ]
そういえば outer ってキーワードなのな



540 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:34:50 ]
conceptまだー?

541 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:31:03 ]
image.blog.livedoor.jp/warosmania/imgs/0/6/063e2fb7.jpg

542 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:38:53 ]
何やらブラクラ危険と専ブラが教えてくれるのだが

543 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 08:44:44 ]
>>542
心霊写真と見せかけてしばらく見てると白粉野郎がアップになるやつ。

544 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 16:03:15 ]
しばらくってほど時間が経過しないのがなんだかな
じーーっくりと見させてからやった方がダメージ大きいのに

545 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 16:27:51 ]
専ブラによってはアニgifのサムネイルが最後の1枚になってたりして効果ない
びびったけど

546 名前:デフォルトの名無しさん [2008/06/28(土) 02:31:24 ]
>>541
びびった。だがD関係ねーや。

あるいはこれがまだ見ぬヲルタンの素顔なのか?

547 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:58:59 ]
ウォルたんにヒゲはあるのだろうか

548 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 04:10:10 ]
テンプレートって計算完備?

549 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 06:08:29 ]
折りたたむだけ



550 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:30:05 ]
hoge hige hage

551 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:40:23 ]
朝起きたら枕元に美少女死神が立ってて鎌で殺してくんねえかなあ…はぁ…

552 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:45:54 ]
Constraintsって何か意味あるんですか?
static ifで同じことができる気がするんですが

553 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:48:19 ]
>>552
分けてかけることに意味があるんじゃない?
よくわからんけど。

554 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:03:45 ]
>>553
うーん、わざわざ構文拡張してまでやることなのかな…
まあよく考えたら将来的な理由かもしれないし、
あんまりこだわらないことにします

555 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:36:32 ]
スクリプト言語ひとつ覚えたんで、次は念願のコンパイル型言語を――と思って
Dを狙ってるんですが、このスレ見る限りやめたほうがいいような気がしてきました。
この言語将来性あるんでしょうか? こんなに利用者にコケにされてる言語はじめてみた。

556 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:41:27 ]
このスレは信者だらけだから、少なくともコケにはされてないだろ。

557 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:43:11 ]
……コケにされてるか? むしろこのスレでは愛されてると思うんだがな。

まあそれはさておき、バイナリ吐く言語使いたいなら素直ににC/C++やった方がいいと思うんだ

558 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:49:54 ]
>555
初のコンパイラ方式をDにするのはやめたほうがいいのではないかと。
CかJavaかC#が良いと思う
Dは、ある程度以上の実力者が戯れるのには最適な言語だと思う

559 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 22:00:03 ]
いろいろできたのう

// 特殊化
template factorial(int n) {
enum factorial = n * factorial!(n - 1);
}
template factorial(int n : 1) {
enum factorial = 1;
}

// constraints
template factorial(int n) if(n != 1) {
enum factorial = n * factorial!(n - 1);
}
template factorial(int n) if(n == 1) {
enum factorial = 1;
}

// static if
template factorial(int n) {
static if(n != 1) enum factorial = n * factorial!(n - 1);
else enum factorial = 1;
}

// CTFE
int factorial(int n) {
if(n != 1) return n * factorial(n - 1);
else return 1;
}



560 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 22:04:41 ]
Java出身者にはテンプレートが魔法に見えるから困る
これだけでチューリング完全とかw

561 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 22:11:52 ]
なんというか、There's more than one way to do itって感じになってきたな…

562 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 00:37:59 ]
もともとそういう志向はなきにしもだったからな
でもテンプレート周りとかconst周りはmore than one wayだけでもないぜ。
コンパイル時に決定可能かどうかという重大な違いがある

563 名前:555 mailto:sage [2008/06/29(日) 00:48:50 ]
色々ありがとうございます。
言語仕様や標準ライブラリにいろいろけちつけるのは愛の鞭だったんですね。
初のコンパイラ型言語ってわけでもないので(Cを一通り。MinGWのWindows SDKにあちこち不備があるのが鬱陶しくなってやめた)
忠告を聞かずにDの世界に飛び込んでみます。

564 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 00:55:09 ]
>不備があるのが鬱陶しくなってやめた
ここがひっかかるw
Dはそんなのの塊のような気がす

565 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 01:02:32 ]
ゲーム作るのでなければwxDを使えばいくらか幸せになるかと

566 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 01:24:57 ]
>>564
> >不備があるのが鬱陶しくなってやめた
> ここがひっかかるw

まああの頃とは一味違うつもりなんで……不備は自分でどうにかできる、といいな。
>>565
GUIツールキットってメモリ喰いであまりいいイメージないんですよね。
せっかくWindows API結構覚えてるんで生で頑張ります。

と、ここまで書いてちょっと調べてみたらwxWidgetsって普通のGUIツールキットとはちょっと違うんですね。これは素敵かも。

567 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 11:58:28 ]
メモリの配置を覚えるためにもやっぱC/C++あたりを使うのがいいだろうな
CはやることやったらすぐC→C++でもいいと思うし

568 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 12:46:39 ]
C++は時間の無駄だと思ってるからやっぱりDで

569 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 12:55:40 ]
Dこそ時間の無駄で終わらなければよいが…って思ってる
いつか仕事で使える日が来ることを期待してるが



570 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 13:11:16 ]
仕事で使わせてくれる会社に入ればいい

571 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 13:26:44 ]
Hoge hoge = new Hoge();
SetWindowsLong(win, GWL_USER_DATA, &hoge);

ってかんじでウィンドウにインスタンスをひも付けさせたら
しばらくは使えるんだけど、そのうちインスタンスが
まともにとれなくなるのはやっぱりGCのせい?


572 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 13:53:34 ]
>>571
yes.
どこかに参照を残しておかないとなくなる。

573 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 14:36:45 ]
カーネルオブジェクトの中にある参照をGCが見つけられるわけがない

574 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 15:06:22 ]
DのGCって、再配置型?

575 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 20:16:29 ]
>>571
そもそもDのクラスは参照型なので、やるとしても
Hoge hoge = new Hoge();
SetWindowsLong(win, GWL_USER_DATA, cast(void*)hoge);
こうじゃないか?
&hogeだとhogeの寿命が来た時点でダメになる気がする。

576 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 21:58:12 ]
>>575
GreenPadのソースみながらウィンドウプロシジャ周り(0x042444c7の)をDでやろうとした時に引っかかったw
冷静になって考えれば簡単なミスなんだが。結構考え込んだ気がする。

577 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 22:25:48 ]
GWL_USER_DATAでぐぐったらこのスレが出た。
9時間弱しか経ってないのにgoogleすごいな

578 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 22:31:21 ]
最近のゴッゴル先生とか凄いよな…
足りない情報を探そうと思ったら〜というのを探してますっていう昨日の自分の書き込みがヒットしたり…

579 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 23:56:57 ]
2chで質問して反応がないので、後日検索すると
自分の質問が検索結果のTOPにでる悲しさ



580 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 04:32:39 ]
最近のゴッコル先生は2chのクローリング頻度をやたら上げてるからな
2chで質問してから2時間くらいで自分の質問が引っかかったことがある
しかし自分のブログは一切かからない

581 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 06:23:57 ]
更新頻度でクロール頻度も変えてたりするのかね

582 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 08:54:49 ]
switch〜case で break 書かなきゃ下に降りちゃうの?
こんなとこまでCを真似なくていいのに

583 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:08:02 ]
caseで複数条件に対して一つの処理にしたいときにできないと困るじゃない

584 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:40:12 ]
>>541見て心臓が痛くなったんだけど訴えたら勝てるかな

585 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:54:58 ]
すぐ下でびっくり系のブラクラって説明されてるのにクリックするなよ

586 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 10:17:15 ]
2ちゃんねる鉄の掟.

出されたご飯は残さず食べる。
転んでも泣かない。
おいら(ひろゆき)のギャグには大爆笑する。

587 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:46:30 ]
>>583
switch(n) {
case 1: ...
case 2,3: ...
case 4,5,6: ...
}
でいい

588 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:50:23 ]
そんなことよりもほかの言語との整合性が取れなくなって余計なヒューマンエラーが発生することのほうが問題。
って我らがうぉるたーたんのお達しだ。諦めておけ。

589 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:52:13 ]
まぁ、違う仕様にするならキーワードを case じゃなくて when にするとか
しないと混乱するしな。



590 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 13:54:04 ]
個人的にはswitch_breakみたいな名前でも欲しい
でも、無くてもそんなに困らないし、
そんなことよりライブラリをどうにか…

591 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 20:41:27 ]
case 0..10とかできないのかな。VBみたいだけど。

592 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:14:06 ]
いよいよ ... がほしくなる

593 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:23:22 ]
vbといったらcase is

594 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 01:54:49 ]
MPDさんのウィンドウは閉じないww

595 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 01:55:25 ]
誤爆すまぬ

596 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 03:47:38 ]
>584 はbreak; って書かれても fall thru しちゃういけない子

597 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 05:58:54 ]
switch (url) {
case ブラクラ:
if (res!=584) throw new bad_res;
}

こうですか?わかりま(ry

598 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 06:10:32 ]
res = 584;goto case ブラクラ;

599 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 10:50:14 ]
nullオブジェクトにアクセスしたときにAccess Violationになりますが、
このときにうまくスタックトレースを取る方法がありますでしょうか。
flectionedを使うと例外の場合のスタックトレースは取れたのですが……





600 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 16:43:35 ]
そこはddbgじゃねーかな

601 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:13:59 ]
関数内で定義したローカル変数のポインタを返しても大丈夫ですか?

int* Func(){
  int Num = 10;
  return &Num;
}

みたいにした場合にスコープを抜けてもアドレスは有効なのでしょうか。


602 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:22:57 ]
今年のD言語カンファレンスは、スピーカが集まらなかったので中止に
lists.puremagic.com/pipermail/digitalmars-d-announce/2008-July/009696.html

il|li orz il|li


603 名前:601 mailto:sage [2008/07/02(水) 17:45:01 ]
自己解決。
良いわけないですね。コンパイルエラーになりました。

604 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:49:37 ]
>>602
あらぁ…w

605 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 20:06:05 ]
東京でやってくれるなら喋りに行くのに。

606 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 20:37:56 ]
ネタがないっす

607 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 20:40:31 ]
英語ミリ

608 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 21:52:24 ]
>>602
え?どうせ行くつもりなかったけどいつ募集してたの?

609 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 21:57:19 ]
>>608
普通にずっとNGで募集してたと思うが。



610 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 21:56:38 ]
更新まだー?

611 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 01:03:37 ]
おまいらNGって何で読んでる?

612 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 02:46:14 ]
俺はfirefox

613 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 06:42:09 ]
thunderbirdで読んでる

614 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 16:28:12 ]
D2.0とphobosでeliminateなどで使用する叙述関数に
任意の引数を渡したいのですが、可能でしょうか?

void main(){
    const int Value = 3;
    int[] Nums = [1,2,3,4,5];
    Nums = eliminate!("a < Value")(Nums);
}

とか

void main(){
    const int Value = 10;
    int[] Nums = [1,2,3,4,5];
    static bool Func(int Src, int Value){
        return Src < Value;
    }
    Nums = eliminate!(Func(Value))(Nums);
}

のような事をやりたいのですが。

615 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 16:58:48 ]
D2.0のstd.streamって使えないんですかね
FileのreadLineをstringに渡そうと思ったら
Error: cannot implicitly convert expression (input.readLine()) of ty
pe char[] to invariant(char)[]
とかエラーがでるから困る

標準ストリームはdin,doutでいいんだけど
CFileを使うのは気が引ける。fopenとかいまさら使いたくないし

616 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 17:08:14 ]
時間ないから簡単に
前者はmixinで文字列生成
後者は
static bool Func(int Value)(int Src){return Src < Value;}
eliminate!(Func!(10))(Nums)
とか?
試してないから間違ってたらごめん

617 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 17:10:44 ]
ええい
mutable typeからinvariant typeへは明示的な変換が必要だからidup
string s = stream_.readLine().idup;

618 名前:615 mailto:sage [2008/07/04(金) 17:45:28 ]
>>617
っていうか標準ライブラリなんだからinvariant仕様に直しとけと言いたい
Fileをカプセル化した自前クラスで美味しくいただけそうです

619 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 21:35:03 ]
std.stringは全部をconst(char)[]にしてもらいたい
更新まだかなぁ・・・



620 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 23:50:07 ]
>>614
とりあえず成功する例
かっこ悪いのでbindとか関数リテラルがどのくらい効くのか教えていただけると助かります

const int Value = 3;
static bool func(int a) { return (a < Value); }

void main(){
        int[] Nums = [1,2,3,4,5];
        Nums = eliminate!(func)(Nums);
        writefln(Nums);
}

621 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 23:55:51 ]
>>616
後者は動きました。
>614のコードにはめると
eliminate!(Func!(Value))(Nums)
で動きますね

622 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:33:35 ]
Valueを用意する必要がないのでは?
あえて定数に名前を付けたいのなら enum Value = 3; をおすすめ

623 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:34:07 ]
あと std.bind はずっとぶっこわれ中

624 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 11:41:28 ]
lazyな引数を関数外部に持っていく方法あったら教えてくれ〜


625 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:46:31 ]
void delegate() dg;
void func(lazy void a) {
dg={return a;};
}

これでいけると思うんだがコンパイラが死ぬな。

void func(void delegate()[] a...);
でも使っとくといいと思う。

626 名前:614 [2008/07/06(日) 01:30:55 ]
すいません、説明不足でした。
というか提示した例が悪かったです。
比較したいValueは動的な値です。

const int Value = 3;

int Value = 3;
に置き換えた場合で考えて頂けますでしょうか。

C++でboost::lambdaを使った場合の

int Value = 3;
remove_if(Nums.begin(), Nums.end(), _1 < Value);

のようなことがやりたいのです。


627 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:47:05 ]
謎さんとこのstd.expressionとか。

628 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:49:21 ]
phobosのstd.algorithmはコンパイル時に決定してる関数しか受け付けないから不便だな。
とっとと、static引数導入してオーバーロードで関数ポインタとかも取れるように整理してほしいわ

629 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:06:20 ]
自分で書くしかなくね?
import std.stdio;
T[] removeIf(alias cond, T)(T[] arr) {
T[] ret;
foreach (i; arr)
if (cond(i))
ret ~= i;
return ret;
}
void main() {
auto less3 = (int i){return i < 3;};
static bool greator3(int i){return i > 3;};
int[] arr = [1,2,3,4,5];
writefln(removeIf!((int i){return i<4;})(arr));
writefln(removeIf!(less3)(arr));
writefln(removeIf!(greator3)(arr));
}



630 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:12:21 ]
closureあるから
int j = 3;
auto less = (int i){return i<j;};
これできるよ

631 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:26:59 ]
名前が付いてないとダメだってのは使い勝手が悪いな

632 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 08:29:38 ]
俺もそう思ってたが実は無名関数でもいけてる件

633 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 13:14:43 ]
>>632
コードplz

634 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 16:05:28 ]
>>629のこれのことなのだが
writefln(removeIf!((int i){return i<4;})(arr));
もしかしてphobosの話だろうか

635 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 17:20:20 ]
こないだのアップデートからリテラルのaliasも取れるようになったんだっけか。

636 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 19:50:48 ]
ああそれでか

637 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:17:26 ]
連想配列の clear ってどうやるですか?

638 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:33:51 ]
新しいのと取り替えればいいんじゃない?

639 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:03:14 ]
これでよくなかったっけ
int[int] a = [1:1];
writefln(a);
a = null;
writefln(a);



640 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:23:11 ]
それは空のと取り替えただけでクリアしたと言えるかは疑問だな。
もとのaの参照をどこかで持ってれば、そっちはクリアされないわけだし。

641 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:38:19 ]
foreach (key; aa.keys)
  aa.remove(key);
じゃダメ?

642 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 02:05:06 ]
2.016まだかよー

643 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:24:28 ]
>629
やりたかったのはまさにこれです。
ばっちりです。ありがとうございました。

644 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:47:40 ]
D言語の配列は参照型だとあるのですが、引数で渡す場合は確かにrefを
つけなくても参照で渡されているのですが、返値で返した場合って.dup
されたものが返されてしまうのでしょうか?

class CTest{
    int[] Nums;
    this(){
        Nums ~= 1;
        Nums ~= 2;
        Nums ~= 3;
    }
    int[] GetNums(){return Nums;}
}

void main(){
    CTest Test = new CTest;
    int[] Nums = Test.GetNums();
    Nums ~= 4;
}

でTest.Numsに4を追加したいのですが。

配列に限らずD言語で参照返しする場合ってどうやるのでしょうか。


645 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:22:17 ]
もうすぐTango 0.99.7リリース来そうですね。
twitter.com/larsivi/statuses/851357615


646 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:58:32 ]
>>644
Nums ~= 4; の直前と直後の配列のポインタを見てみるとわかるけど、インスタンスが変わっちゃってる。
# ということは、 ~= の演算子は配列のインスタンスに対する捜査ではなくて、配列のインスタンスを保存している変数に対する操作っていうこと…かな?
classの場合は普通に返せる。配列だけは操作するときにインスタンスが同じものになるかどうか注意しなきゃいけない。
# 配列の要素を増やす時は違うインスタンスになる場合があって、配列の要素を減らす場合にはインスタンスは変わらない。
tangoのArrayBagみたいなクラスでラップすると幸せになれるかもしれない。

647 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 15:09:35 ]
Core2DuoE6600の環境なんだけどstd.cpuid.amd64がtrue
笑っちゃった。俺の環境がおかしいのか?

648 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:06:54 ]
>646
試してみましたが自分の環境では ~= の前後ではアドレスは変わらなかったです。
そして引数で渡したときはアドレスが変わらず、返値で返した場合はアドレスが
変わっていました。

class CTest{
    int[] Nums;
    this(){
        Nums ~= 1;
        Nums ~= 2;
        Nums ~= 3;
    }
    int[]* GetpNums(){return &Nums;}
}

void main(){
    CTest Test = new CTest;
    int[]* pNums = Test.GetNums();
    *pNums ~= 4;
}

と配列のポインタを返すようにしたらできました。
ただ、これだとGCがちゃんと返した配列のポインタを追ってくれるのかが不安だったり。
うーん、いまいち配列の扱いがわからない。

やはりクラスでラップするのが安全なのかなぁ。

649 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:13:58 ]
たぶん勘違いしてる、というか俺の伝え方が悪かった。すまん。
配列のポインタは Nums.ptr これで得られる。
codepad.org/tvVXZGEx
↑を参考にするとわかると思う。
# ちなみに、容量をリザーブしておくとインスタンスが変わらない。
# コメントアウトをはずすと同じポインタになる。



650 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:26:26 ]
>>648
codepadの環境では、前後でアドレスは変わった。
codepad.org/Mxf3ifJm
> Test.Nums: [401C3FB0]
> main.Nums(before): [401C3FB0]
> main.Nums(after): [401C2F80]

一応、仕様では「配列の連結は、 片方が長さ 0 の配列であっても必ずコピーを伴います」
だそうなので、Nums ~= 4; でローカルのNumsアドレスが新しい配列のものになるのが正常だと思う。
(つまり、参照先の配列インスタンス自体を連結演算によって変更するのは無理ってこと)

一個のメンバ変数を対象として変更する場合はメンバ変数への参照(ポインタ)を返してやればいいけど、
それだとTest.Numsの指す配列が他の変数によって参照されてたりするとやっかいな問題になると思う。

651 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:50:42 ]
>>647
AMD64とEM64Tってほぼ互換じゃなかったっけ

652 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:53:20 ]
>>649
> # ちなみに、容量をリザーブしておくとインスタンスが変わらない。
> # コメントアウトをはずすと同じポインタになる。
ホントだ。

Nums ~= 4; を Nums = Nums~4; とすると、アドレスが変わるようになる。
codepad.org/WetmPBdy

アドレスが変わらない場合も、Test.Numsの長さが自動的に延びるわけじゃなくて、
スライスみたいなことになってるみたいだ。(Test.Numsには4は追加されない)
codepad.org/cWJnruXE

こういう仕様なのかバグなのか。実装を考えればこの挙動は自然だけど……

653 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 17:19:30 ]
>>651
俺の無知か。スマソ

654 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 17:58:19 ]
lengthを増やすとアドレスが変わってしまいますね。
そしてリザーブしてもアドレスは変わらないが、追加されたメンバが
更新されないと……

codepad.org/Kg0yzNfz
みたいに引数にリファレンスで渡した場合は追加されるので、それと
同じ事が返値でもできればいいのですが。
C++のように返値のリファレンス指定でできないんですねぇ。

655 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 18:29:01 ]
std.xml、マニュアルにあるサンプルプログラムちゃんと動く?
どうしてもうまく動かない・・・
2.0.15です

656 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 18:50:59 ]
前に誰かがstd.xmlが動かなくなったって言ってたような・・・
trunk版でも無理なのだろうか

657 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 19:23:54 ]
>>654
>C++のように返値のリファレンス指定
俺もこれほしいかも
というか、参照とかポインタとかはC++のほうがわかりやすくて好きだ…

658 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:43:38 ]
(関数ポインタを除く)

659 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:57:05 ]
>>645
linux環境だと、Theadクラス使うと落ちまくってとても使えたものじゃないのだが、
いつになったら直るのだろうか・・・



660 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 13:22:48 ]
>>645
ん、まさか tnago に DBI でもマージするつもりなのか…
アレの SQLite バインディングは動かないコードのまま trunk に放置されてるからなぁ…

661 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:02:39 ]
>>645
じゃあ、0.99.7に移行する前に破壊的変更の予習。
www.dsource.org/projects/tango/wiki/0_99_7_BreakingChanges
今回多いなw

662 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 01:17:41 ]
>>661
>tango.io: The use of FilePath and PathView in FileConduit is deprecated in favour of char[] paths
>tango.text.xml.XmlPrinter: Deprecated in favor of DocPrinter
>tango.group: Deprecation period expired, so will be removed.
ここら辺はかなり厳しそうだな。

663 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 02:17:16 ]
phobosのtrunkが大量に更新されてる件

664 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 02:24:07 ]
あ、やべぇ、なんかTangoのD2.0のマージ来た…!?
www.dsource.org/projects/tango/browser/branches/experimental/D2.0

665 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:23:46 ]
暴走するのはPhobosだけにしてくれよ…

666 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:34:05 ]
これはDコミュニティの文化だよ

667 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 04:46:53 ]
>>664 キタ━(゚∀゚)━!!

668 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 11:04:08 ]
PhobosとTangoがなかよくなりますように・・・

669 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 18:53:28 ]
2.016もきた

- re-implemented internal.monitor in D. Rationalized internal.object
- Bugzilla 288: changed return type of opEquals from int to bool. ***This necessitates doing a grep for opEquals and changing all the return values.***
- Added .__vptr and .__monitor properties for class objects for use in the internal runtime library.
- Made rdmd's source available through svn, see dsource.org/projects/phobos/browser/trunk/tools/rdmd.d
- Simplified std.algorithm by fusing together higher-order functions taking an alias and their counterparts taking a string
-Added module std.array containing array operations: insert, erase, and replace
-Changed the enforce's implementation to generate smaller code per call
-Changed std.functional.binaryFun to work with strings and function aliases alike
-In std.getopt, added optChar, assignChar, and endOfOptions, per popular demand :o|
-In std.math, replaced a bunch of consts with enums
-In std.numeric, added Don Clugston as author and operated minor documentation fixes
-Improved std.stdio.chunks to take an iteration tally in addition to the chunk

また、すごい変更がw





670 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 19:16:19 ]
大して大きくないような。.__vptrと.__monitorは今まで無かったのが(ry
それより修正して欲しかったバグの修正ktkr

671 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:07:24 ]
よくわからん・・・誰か要点を・・・

672 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:05:19 ]
>>671
opEqualsの戻り値型が変わったことぐらいだろ。

673 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 12:38:58 ]
stringzとかいう型出来ないかな

文字列が入ると最後に'\0'を埋めてくれて
writeflnなどD用の時は'\0'を無視、
C用の時は'\0'を使えるという感じに
もしくはC用の関数内では最後に'\0'が付加されるというような

toStringzで事足りるんだけどな

674 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:34:06 ]
>>673
リンケージによって文字列の内部構造が変化するのは便利かもだけど怖い

675 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 20:38:11 ]
opEqualsとうとうboolになったのか。
パフォーマンスが云々うぉるたんが抵抗してたのは解決したんかな。

しかしTangoはどうあってもモジュール名のUpperCamelを止める気はないのだろうか。

676 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:39:03 ]
>>675
いまさら変えられても混乱するしこのままでいいかなって最近思ってきた。

677 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:49:20 ]
opAssign定義した構造体の連想配列に新しく要素を格納しようとすると落ちるのは何でなんだぜ?

678 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 23:18:34 ]
独り言だけど、Win32 とのやり取りが面倒なので、
普通にマルチバイト文字が使えるようにして欲しい。

const char *track_name[] = [mbs"日本語",mbs"日本語"];

みたいな。

679 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:05:18 ]
今更A関数なんて使わないっしょ。W関数で十分っしょ。とか言われてたなあ。



680 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:19:48 ]
>>678
それはコンパイル時に文字コードが決まるの?それとも実行時?

681 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:23:24 ]
CTFE-ableな変換関数をですね…

const achar* track_name[] = [astring("日本語"), astring("日本語")];

682 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 08:59:23 ]
もうShift-JISはやめようぜ

683 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:30:13 ]
今更A関数なんて使わないっしょ。W関数で十分っしょ。

684 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 12:46:38 ]
dic.nicovideo.jp/b/a/D%E8%A8%80%E8%AA%9E/1
誰だよ

685 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:41:25 ]
いまどきデフォルトエンコードがUFT-8じゃないOSが糞ということ

686 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:45:36 ]
>>684
>5のマヌケな足の開き方が素敵

687 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:48:48 ]
主要なソフトがsjisにも対応していればいいだけの話で
過去との互換性を気にするならば
最低限のテキストエディタのメモ帳ぐらいが対応すればいい話

win用で人気のあるテキストエディタはutf8とか対応してるしな

688 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 14:49:14 ]
はやくstdoutにフィルターをかぶせられるようにしてほしい。

689 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 20:18:32 ]
クラスに単純な値コピーをさせる方法ってありましたっけ



690 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 20:59:24 ]
>>688
ああそういうことができるんだね
でもできないんだね

>>689
あったっけ?なかったような

691 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 22:59:57 ]
中文やらハングルやらが扱えないようにおれは A のAPIでやってるぜ。

692 名前:デフォルトの名無しさん [2008/07/12(土) 01:28:36 ]
だいぶ前に出てて挫折してた
「dsource.orgのWin32Api Bindingsをdmd2.0でコンパイルすると出るエラー」

が、いつの間にかなくなってるッ!!

>>340(いつからなおってたんだー!?)
やっと2.0系に復帰できるワァ

693 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:41:01 ]
>>692
半年前には大丈夫っだった気がするが、
使ってるAPIの差かもしれん

694 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 06:31:50 ]
>>692
DMD2.016でまたむりぽ

695 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 07:25:41 ]
>>692
半年前には直ってたものを壊れた瞬間に知るとかw

696 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 07:28:55 ]
型なのに型として認識してくれなくてやってた苦肉のtypeof(型)ができなくなってるね
元々の問題が修正されたのならいいのだけど

697 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 10:44:36 ]
DMD 2.017 リリース

698 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 11:16:58 ]
>>697
まじだ
バグフィックスだけだね

699 名前:デフォルトの名無しさん [2008/07/12(土) 15:04:08 ]
Webから画像ダウンロードできたりしますか



700 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 15:27:12 ]
できる。

701 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 21:05:40 ]
>>678
だからUTF-8でない文字列をchar*に入れるなとあれほど…

702 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 21:12:50 ]
mbsはubyte*にするべきだったりするの?

703 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 21:14:19 ]
>>702
もちろん

704 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 22:16:11 ]
charはutf-8って規格で決まってるからな−。
それ以外が入ってるのは気持ち悪いというか、間違っているという話。


705 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 23:09:10 ]
>>678 >>701-704
こういう案はどうなの?
ttp://rayerd.ddo.jp/pukiwiki/ingwiki/index.php?D%B8%C0%B8%EC%A4%C8MBCS%A4%CE%CF%C3

706 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 00:35:33 ]
もうstd.encodingがあるしやるならその上に作るべきでは

707 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 00:37:29 ]
>>705
wstring toUTF16(in mbchar[] s, in uint codePage=0)
{
mbstring sz = (s ~ cast(mbchar)'\0').idup;
wstring result;
result.length = MultiByteToWideChar(codePage, 0, cast(char*)(sz), sz.length, null, 0);
MultiByteToWideChar(codePage, 0, cast(char*)sz, sz.length, cast(wchar*)result, result.length);
return result;
}

invariantであるresultに書き込もうとしてるのはおかしいな。
キャストしてしまってるから本来検出されるはずなのエラーがでなくなってる。

MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length);
でコンパイル通るように直したほうがいい。

708 名前:デフォルトの名無しさん [2008/07/13(日) 01:23:06 ]
Dで外部アプリの実行とかってどうやればできますか。

709 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:27:03 ]
>>707
>>708
import std.process;
std.process.system("dir");



710 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:31:20 ]
>>706
正直申し上げますと、あれインターフェイスが糞すぎる

711 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:34:08 ]
>>709
あ・・・ありがとう。
CreateProcess使ってできてやったーとか思ったらそんな簡単に・・・

712 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:35:03 ]
std::basic_stringの仕組みを丸ごと移植したらどうかと思うのだが

713 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:44:57 ]
>>707
> MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length);
> でコンパイル通るように直したほうがいい。
え・・・そんなんできんの・・・

714 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:02:06 ]
OpenGLのポーティング、D2.0でもデフォのまま使えるようになったのね
さっき最新取ってきて直そうと思ったら、既に修正済・・・感動した

715 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:07:24 ]
Linux系でD言語やろうと思ったらここ見ればいいってHPないですかね。

716 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:07:29 ]
>>713
???

717 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:11:21 ]
>>716
MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length);
キャストなしのこれをコンパイルエラー出さずに書くやり方があるのかなと

718 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:50:24 ]
もうperlみたいにしてしまえ

719 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 04:22:25 ]
tangoのProcessってサンプル使ってもうごかないんすけど。



720 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 04:25:54 ]
よくあること

721 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 04:41:14 ]
Executeしないと動かなくなってた><

722 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 05:20:48 ]
HttpClientのGetResponseが爆発してて自分の手に負えません。

だれか画像ゲットのやりかた教えてください。

723 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 08:40:25 ]
1年ぶりに着たけどやっぱ仕事では使えなさそう。
俺と同じ。知ってた。

724 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:09:18 ]
>>720
本当に良くあるから困る
stdioのwriteflnの時は俺がラリった
ioを自分で作成して出力せにゃいかんのかと思ったり

725 名前:722 mailto:sage [2008/07/13(日) 09:29:22 ]
Descentが教えてくれる関数一覧を信じすぎました。
事故解決。

726 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:23:13 ]
だから安定版ならD1.0があると(ry

727 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:36:52 ]
D1.0系列って本当に安定してるの?

728 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:37:31 ]
仕様は安定してるよ。

729 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:55:23 ]
>>726-728
わらた

このままバージョンが変わらないでいてくれたら
D-1とかD-2とかいう扱いでコードの配布が安定できて嬉しいな



730 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:00:23 ]
D2.0が安定化するころにはD3.0が登場してて阿鼻叫喚になってると予想してみる

731 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:02:17 ]
メジャーバージョンアップ=仕様の確定=完全な互換性の断ち切り

732 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:06:18 ]
phobos vs tango
d1.0 vs d2.0
で組み合わせが四通りあるから困る
d1.0+phobosで開発してきたが、tangoのFiber使いたい俺としては
せめてphobosとtangoが共存してくれれば...

733 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:12:06 ]
codepad.org/biiWqnSH
FizzBuzz書いてみたいがtoStringってコンパイル時に動かないんだな

734 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:00:40 ]
>>733
っ std.metastrings

735 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:07:07 ]
DだとFizzBuzzを最小何文字で作れるんかな
ちなみに俺は140文字だった

736 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:18:48 ]
>>735
www.shinh.org/p.rb?FizzBuzz#D
に83バイトという記録がある。
いったいどんなコードなのやら。

737 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:24:29 ]
>>730 それは>>731から本望 QED
>>732 tangoがphobos準拠じゃないのが悪いんだよ
なんで自作ライブラリごときが標準ライブラリと共存できないんだってことだよw

738 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:33:21 ]
tangobosは?

739 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:40:02 ]
>>737
tangoはGCや配列キャストなどの言語の基幹部分も独自に持っていて、
phobosを置き換えるのが目的で作られてるから、共存できなくて当然。



740 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:39:01 ]
>>736
切り詰めて87文字
しかも数字が表示できない、中括弧使うと文字増えるしなぁー
import std.stdio;void main(){int i;while(i++<100)writef(i%3?"":"Fizz",i%3?"":"Buzz");}

741 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:44:04 ]
>>740
printf使えばもっと短くできるんじゃない?

742 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:55:04 ]
>>739
じゃあphobosが言語の基幹とライブラリの機能分担に失敗してる?

743 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:21:54 ]
>>741
これで99文字
void main(){for(int i;i++<100;)printf("%.*s%d",(i%3?"":"Fizz")~(i%5?"":"Buzz"),!(i%3&&i%5)?0:(i));}
こっちが別案(100文字ジャスト)
void main(){int i;char[]s;while(i++<100)printf("%.*s%d",s=(i%3?"":"Fizz")~(i%5?"":"Buzz"),s?0:(i));}

どっちもゴミが入るし83文字なんて…

744 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:16:42 ]
>>732
D言語研究室にファイバあった。
前に試したけど、ファイバの部分だけならコンパイル通るようにするのはそれほど難しくない。

745 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 01:40:53 ]
d で windows アプリケーションを作るときに XP のビジュアルスタイルを当てる方法をおしえてください

746 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:13:17 ]
マニフェスト作ればいいんじゃないの。
詳しくしらんが。

747 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:26:09 ]
%03dとかやれる関数ってないっすか。

748 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:35:44 ]
std.string.format

749 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 03:12:25 ]
std.c.stdio.sprintfでおk



750 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 03:53:45 ]
tangobos で tango と phobos を同時に使うと、無駄に富豪的な気分がするぜ

751 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:10:02 ]
tangoではないんでしょうか。

char[] format(char[] format, ...)
{
Sprint!(char) sp = new Sprint!(char);
return sp.format(format, _arguments, _argptr);
}
とかやっても%がそのまま出力されちゃうんですが。

752 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:34:12 ]
>>751
tangoのフォーマットはC#と同じなのでそのようにやると良い。

753 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 10:31:52 ]
>>750
同時につかえるやつなんだ!しらんかった
両ライブラリの最新に対応してるのかなぁ
てかObjectクラスが違うはずなのに大丈夫なのかな

754 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 13:25:00 ]
tangoの方のオブジェクトが使われるはず。

問題が出たとしても、そういうことの解決をやるのがtangobosっていう擦り合わせのプロジェクトですよ。

755 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 13:43:00 ]
やっぱ、tangobosって方向性として間違ってるよなw

756 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 14:09:00 ]
>>745
main.exeが実行ファイルだとしたら、以下の内容をmain.exe.manifestとして保存して実行ファイルと同じフォルダに入れておけば、どんな言語で作ってもXPビジュアルスタイルになる。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="main"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>main</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>


757 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:07:12 ]
>>752
そうだったんですか。
ありがとうございました。

758 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:04:15 ]
こんなところ見つけた。
www5.atwiki.jp/yaruhara/pages/74.html


759 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:56:39 ]
>>758
かなり気合入ってるな



760 名前:デフォルトの名無しさん [2008/07/15(火) 05:11:03 ]
ディレクトリ系の例外拾うと、システムの日本語が入ってるせいか文字化けするんですが、
誰か治し方しりませんか。

761 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:04:24 ]
連投ですいません。
auto http = new HttpClient( HttpClient.Get, "localhost/test.jpg" );
http.open();
HogeClass _this = this;
DataOutput stream = new DataOutput(new FileOutput( this.current.toString()~"hoge.jpg" ));
if( http.isResponseOK )
{
int len = http.getResponseHeaders.getInt( HttpHeader.ContentLength, int.max );

http.read( (void[] data)
{
stream.write(data); //○
_this.addPicture(data);//X
_this.last = data;//X
}, len );

}
stream.flush();
stream.close();
http.close();

Dlした画像のデータをvoid[][]dataで保存しておきたいのですが、
無名関数を出たとたんにDLしたデータが壊れてしまってるようです。

何が駄目なんでしょうか?

762 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:24:41 ]
dataをdupしたら解決しそうな気がする

763 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:36:56 ]
だめですた・・・・・

764 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:46:32 ]
voidはどうすればキャストとかできるんでしょうか。
中身をのぞいてみようと思ったんですが、何にもキャストができません。
あと、
無名関数内の引数dataのlengthは1716でlenは4323でした。

765 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:28:28 ]
Voidはキャスト可能でした><

766 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:03:14 ]
>>760
再現コード

767 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:02:20 ]
>>764
無名関数が複数回呼ばれることを理解してない、ということかな?
無名関数内の引数dataは実際のデータが小分けになっている。
複数回呼ばれたときのdataを全部連結すると、お望みのデータになるよ。

768 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:25:29 ]
>>767
おおおおう。
できました。


ありがとうございました。

769 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 05:35:23 ]
FizzBuzz書いてみた
codepad.org/zAwWfbs7

codepadはmetastrings使えないんだな
tangobos使ってるみたいだがバージョンが古いんだろうか



770 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:58:19 ]
>769
std.string.toString() 使えば、toStr 要らなくね?

771 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:12:32 ]
おこられたcodepad.org/jHEx9kA5

772 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:20:06 ]
配列の末端から取り出すのって皆さんどうやってますか?

773 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:45:37 ]
リバースして、ふぉーいーちにかけるか、ふぉーで配列の要素数-1から逆順でとる。
それ以外ってあるかなぁ。

774 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:52:21 ]
foreach_reverseがあるのに,なんでわざわざreverseするのん?

775 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 22:21:55 ]
/home/d/dsss/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../libDG-tango-io.a(tango.io.Conduit.o): In function `_D5tango2io7Conduit7Conduit5errorMFAaZv':
Conduit.d:(.text+0x134): undefined reference to `_D5tango4core9Exception11IOException7__ClassZ'
Conduit.d:(.text+0x151): undefined reference to `_D5tango4core9Exception11IOException5_ctorMFAaZC5tango4core9Exception11IOException'
/home/d/dsss/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../libDG-tango-io.a(tango.io.Buffer.o): In function `_D5tango2io6Buffer6Buffer5errorMFAaZv':
Buffer.d:(.text+0x1580): undefined reference to `_D5tango4core9Exception11IOException7__ClassZ'
Buffer.d:(.text+0x159d): undefined reference to `_D5tango4core9Exception11IOException5_ctorMFAaZC5tango4core9Exception11IOException'
collect2: ld はステータス 1 で終了しました
Command /home/d/dsss/bin/rebuild returned with code 65280, aborting.
Error: Command failed, aborting.

これはいったい何をぐぐったらわかるんでしょうか。

776 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:48:33 ]
>>775
ldの引数で、-lDG-tango-ioの右側に-lDG-tango-coreが書いてない、ということだな、そのエラーメッセージは。
ldはライブラリの依存関係に沿って引数を書かないとリンクエラーになる。

777 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 09:24:16 ]
>>773
うそだろ
v[$-1]じゃねーの!?

778 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 10:09:25 ]
>>777
おまえは何を言っているんだ。

779 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 10:43:50 ]
>>778
777じゃないが俺が代弁しよう。きっとこういいたかったに違いない。
while (v.length)
{
func(v[$-1]);
v.length = v.length-1;
}



780 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 11:24:50 ]
>>779
お前凄いな。

781 名前:777 mailto:sage [2008/07/18(金) 13:13:09 ]
>>778
ごめん、末端から「順に」取り出すのね。
勘違いしてました

>>779
エスパーすぐる!
フォローまでしていただいて・・・

782 名前:773 mailto:sage [2008/07/18(金) 16:54:03 ]
foreach_reverseって実装されてたのか。
ROMってるだけだと疎くなっちゃうね。正直すまんかった。

783 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:38:34 ]
かなり昔からある気がするが…

784 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 20:09:01 ]
>>776
使ってるのはdsssなんですが、直すにはどの辺り調べるといいんでしょうか

785 名前:776 mailto:sage [2008/07/19(土) 00:21:44 ]
>>784
dsssは使ってないから、正確なところはわからない。
もし、読み込んでいるdsss.confにbuildflags=-llDG-tango-core -llDG-tango-io ... のような記述があるなら、書いてあるライブラリの順番が問題なので、それを依存関係に沿って(左のライブラリが右のに依存するように)並び替えればよいのだけど……。


786 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:25:32 ]
Cと比べてどっちが速いの?

787 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:40:32 ]
>>786
・両方ネイティブコード吐くし、どっちがあらゆる面で速いとは言えない。
・メモリ周りはGCある言語のほうが現実的に速くなるよ、と公式では主張されている
・コンパイル速度はDのほうが遙かに速い
・VC++なんかの商用コンパイラのほうが最適化は賢い(んじゃね?
・最適化部は同じだろうし、dmdならdmcと、gdcならgccと同じようなパフォーマンスになる(んじゃね?

下二つは適当。

788 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:51:01 ]
マイクロベンチマークでは、GCC相手でけっこう良い勝負をする
(ICCとかVC++になるとどうだろうか)
ただ最近のバージョンになると速度がやや落ちたみたい
ttp://shootout.alioth.debian.org/gp4/d.php
ttp://shootout.alioth.debian.org/debian/d.php

Dは本質的にかなり速度が出そうな言語ではある
コンパイラ屋が再設計したC++みたいなもんだから

789 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:24:50 ]
>>786
向き不向きがあるけど、開発速度はDのほうが圧倒的に早い…
という比較があった気がした。
ある課題をいろんな言語で解くコンテストがあって、それでDがGCと契約のおかげでいい成績出したって内容だった気がする



790 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 02:07:08 ]
実行速度はライブラリの差が大きいだろうな
複雑な数値計算とかなると、もう

791 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 16:41:09 ]
>>789
C++でどうしても生産性があげれなかったヘタレな俺
現状どうみても D>>C++ です。 本当にありがとうございます。

792 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 11:41:00 ]
IDE欲しくてDescentに挑戦したけど、どうにもコンパイルできなかった。
143あたりの手順も試してみたけどダメだった。結局makeに逆戻りしちゃった。
なんか導入しやすいIDEないかな?2.0系使えるやつ

793 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 14:32:18 ]
Poseidon

794 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 19:35:25 ]
gdc(mingw)0.24でgc_initを呼ぶと即座に落ちる。
_minitもundefinedと言われるし・・・

Win32 のサンプルが動かないとか心が折れそう。

795 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:59:48 ]
>>794
WinMainを使わずにmainを使えばいい。
インスタンスハンドルが欲しければGetModuleHandleで得られるし。

796 名前:794 mailto:sage [2008/07/22(火) 00:15:22 ]
>>795
本当はDLLを作りたいんだけど、DllMainのgc_initでこけてたので、
前段階としてWinMainで実験してみて、うまくいってないという話。
DLL以外ならmainでいいんだけどね。
紛らわしくてスマソ。

797 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 13:08:40 ]
うぉるたんインタヴュー
www.techworld.com.au/article/253741/a-z_programming_languages_d


798 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 14:26:04 ]
> Ignore all the people who tell you it can't be done.
> Telling you it can't be done means you're on the right track.

らしいですよ。

799 名前:794 mailto:sage [2008/07/22(火) 20:06:30 ]
自己解決。
スレ汚し失礼しました。



800 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 21:18:13 ]
自己解決したらちゃんと解決方法も書きなさい

801 名前:794 mailto:sage [2008/07/22(火) 21:21:15 ]
www.digitalmars.com/d/archives/D/gnu/creating_static_dynamic_lib_minit_remains_unresolved_2367.html

DigitalMarsで検索してたら普通にあった。

802 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 18:22:54 ]
www.vimeo.com/1364875
www.n-brain.net/
これ使ったことある人いるかな

803 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 18:26:45 ]
うお、まだ配布されてなかった
すまn

804 名前:デフォルトの名無しさん [2008/07/23(水) 19:58:27 ]
>>797
そういえばウォルタンの顔を見たことがなかったという衝撃

805 名前:デフォルトの名無しさん [2008/07/23(水) 21:59:17 ]
髭がないのがD言語普及の妨げになってるんだよな。

806 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:06:10 ]
懐かしいな
slashdot.jp/article.pl?sid=08/04/30/0830201

807 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:13:17 ]
やはりここはウォルたんにも髭を・・・・・

808 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:14:59 ]
>>806
ハゲである必要はないんか?

809 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:16:45 ]
ハゲると言語仕様が複雑に・・



810 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:19:03 ]
ウォルたんの頭髪大ピンチ!

811 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 06:13:13 ]
髭を剃ることを暗に明に強制されるような環境で、
好きに言語を設計するような仕事はできないという点では明察なんだよな。
その意味でウォルたんは好きに言語を設計してると思うから問題ない

812 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 06:36:53 ]
いくらなんでもこじつけだろと思ったが三行目で吹いた。
確かに好きに設計してるなwwww

813 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 09:34:07 ]
をるたん・ぶらいと

814 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 10:55:23 ]
うぉるたんって60才ぐらい?

815 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 12:46:45 ]
永遠の17歳

816 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:21:05 ]
>814
www.walterbright.com/ によると
「1979年にカリフォルニア工科大を卒業した」そうだから、
50代前半じゃね?


817 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:21:06 ]
caltechを1979に卒業と書いてあるので、
だいたい50〜55くらいの範囲だな

818 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 18:31:20 ]
仲いいなお前らwww

819 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 18:35:16 ]
この一連の流れを/.本家へ投稿してみたいところだな



820 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 22:48:31 ]
>>819 やめろww

821 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:00:46 ]
バージョンアップがこなさすぎる…
最後にリリースされたのいつだよ…

822 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:24:30 ]
一連の流れから分かったこと
・D言語に足りないのは髭

823 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:17:17 ]
じゃあ今度からD言語ではhogeの代わりにhigeを使えばいい、というわけか。

module walter.hige;
int hige(){ return 0; }

824 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:22:24 ]
じゃあDのマスコットキャラに髭つけようぜ

825 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:36:39 ]
かっけーじゃん

826 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:38:17 ]
髭の長さ=Dのバージョン

827 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:59:06 ]
Visual studio並のIDE欲しい・・・

828 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 03:46:48 ]
IDEがあればD言語かつる
っていうか今や普及にIDEは必須だぜ・・・

829 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 04:06:17 ]
うぉるタンはベンツ乗り?
ttp://www.walterbright.com/garage/index.html
うぉるタンのひーお爺ちゃんは日本に来たよ
ttp://www.walterbright.com/trip/chas.html
ttp://www.norwichfreeacademy.com/fileadmin/user_files/museum/Spring_2007.pdf
ttp://www.norwichfreeacademy.com/fileadmin/user_files/museum/Website_pictures/Winter_2007.pdf



830 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 09:45:47 ]
struct type
{
  typeof(this) opAssign(type other)
  {
    return this;
  }
}

int main()
{
  type[string] map;
  type hoge;
  map["name"] = hoge;//Error :ArrayBoundsError

  return 0;
}

何でエラーになるの?教えてエロい人!

831 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 12:03:32 ]
=演算子が関数呼び出しにハイジャックされてるからじゃねーの?

832 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 12:34:35 ]
>>821 この間2.017がでたところじゃないか

833 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 12:42:40 ]
VSのプラグインみたいなのでどこまでできるの?
前にインテリセンスをがんばってた人がいたけれど.

834 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 13:30:31 ]
IDEなんて不要。何の役にも立たない。
そんなのにリソース割かれてコンパイラの完成遅れられたら困る。

835 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 13:38:59 ]
完成・・・だと・・・ッ!?

836 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 13:54:21 ]
>>830
 map["name"] = hoge;

 map["name"].opAssign(hoge);
と解釈される。

map["name"]でエラー

837 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 16:20:50 ]
>>835 そもそも完成なんて概念は存在しないというのは言ってはいけないのかもしれんが言っちゃった

838 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 17:31:44 ]
>>834
別にウォルたんに作れとは言わんw

839 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:49:49 ]
>>835
>>797より
>Do you still consider D to be a language "under development"?
>  A language that is not under development is a language that is not being used.
>  D is under development, and will stay that way as long as people use it.
>  C++, Java, Python, PERL, etc., are also widely used and are still under development.
「IDE? もうあるじゃん」的な発言からも分かるように、なんとなく、
うぉるタンにはDをみんなに広めてやろうっていう野心が足りないんだな。



840 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:54:57 ]
生粋の技術屋なんだな

841 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:15:06 ]
うぉるたんには髭の生えた参謀役が必要なんだな

842 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:14:45 ]
Tango 0.99.7 Dominik released

843 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 00:18:53 ]
Dらしいboost::tupleを作ったはいいけど、コード補完のメンバ一覧が出たとたんIDEが落ちるw

844 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 00:27:03 ]
このスレよりもD言語について盛んに議論されてる場所ってある?
少なくともうぉるたんについてはこのスレが一番だと思うが。

845 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 02:08:44 ]
日本にはないと思う

846 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 02:25:29 ]
D1.028 phobos の std.cover の setDestDir(char[]) 関数なんだけど、

void setDestDir(char[] pathname)
{
 srcpath = pathname;
}

になってるんだけど、

 dstpath = pathname;

だとおもうんだ。
みんなの環境はどう?

847 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 03:09:49 ]
>846
2.017のPhobosでも同様になってる。
よく見つけた。Bugzillaへ行っとけ!

848 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:36:58 ]
>847
アカウント無いし、作りたくないから頼んだ。

dstpath を修正しても何の効果もないからなんとかしろーってのもいっといてplz

849 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 13:08:04 ]
めんどくさ
std.coverなんて使ってないしどうでもいい



850 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 20:00:08 ]
ながれにWWWW

851 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:46:01 ]
最近、D言語を勉強しようかなーと悩んでるんだが
D言語ラブな人にD言語の魅力を語ってほしい

ちなみに今までは、基本的にスクリプト言語(Ruby)でいろいろやってました
C言語は大学の演習のみ、C++やC#は未経験

852 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:57:33 ]
>>851
Rubyで間に合ってたならそっち使ってた方がいいと思う
D言語の凄まじさはC++をある程度やってないとわかりにくいんじゃないかな?

API叩きたいとかでも色々ポーティングしなきゃならない状況だからね〜


853 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:03:40 ]
ruby使ったこと無いから具体的に比べてはワカンネ(実際のところスクリプトメインに使ってて不満がないならrubyと比べてのメリットは少ないんじゃね? という気はする)
一般的な部分では、スタンドアロンの実行ファイルとか、ネイティブ吐く故の速度とかか。必要ないなら必要ないかなあ。

でも個人的に最大の魅力は更新待ちのwktk感。
既存のコード通らなくなる変更躊躇わないからなうぉるたん。標準ライブラリが壊れたりするんだぜ?
(ちなみに当方ややM)(でもこのスレに仲間は多いと思ってる)

854 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:31:44 ]
Ruby使いこなせてるなら、Rubyで十分。
スクリプト言語以外をそんなに触ってないなら、静的型付けとかの不自由さを感じるかも。

Dの良いところはスクリプト言語でもないのに、いろんな機能を使えるところ。他の言語に比べて多機能だと思う。


855 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:38:15 ]
>>851
俺の場合、WindowsとLinuxの両方で使うというのがあったから、Dという選択になった。

Windows環境だけというのなら、C#の方がライブラリその他安定していて、いいと思う。
散々言われていた起動の遅さも、いつの間にか気にならないくらい速くなってるし。

ただ、LinuxのmonoはD以上に地雷が多すぎなんで、マルチプラットホームならDかなと。
C++はコンパイル速度が速ければ使うんだが、Dの速さに慣れちゃうとその遅さに耐えきれなくなってしまう。

まあ、上記はC並に速く実行する言語が使いたいという前提あっての話だから、多少遅くてもいいというのであれば、Javaでもいいのかもしれない。

Dの欠点は標準ライブラリが信用できないこと。
標準ライブラリを自力で何とかできないとDを扱うのは難しい。


856 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:41:46 ]
>>853
> でも個人的に最大の魅力は更新待ちのwktk感。

ナカーマ

857 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:47:04 ]
通らなくなったコードを逐一直してまったくもううぉるたんたらおちゃめなんだからぁ的なアレ

858 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:53:39 ]
仕事仲間には絶対したくないけどねっ

859 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:12:52 ]
参照型をサポートする
タプルを関数から返せるようにする
opCastをまともにする

うぉるたん頼むからこのへん実装してくれ><



860 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:57:43 ]
>>859 参照型ってなんぞ

861 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:00:40 ]
int& a;

みたいなやつじゃね

862 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:17:44 ]
<俺:妄想>

int a;
ref(int) b = a; // 型コンストラクタ

ref(int) func(ref int p) { // 参照渡し・参照戻し
return p;
}

auto c = func(a); // is(typeof(c) == ref(int))

</俺:妄想>

863 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:18:38 ]
htodをもう少しどうにかしてほしいな。
手直し箇所が多すぎて、気軽にCのライブラリを使いたいと思えない。

864 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:31:45 ]
Tangoユーザの方0.99.7はどうよ?

865 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:36:28 ]
>>848-849
ttp://f17.aaa.livedoor.jp/~labamba/?BugTrack
とりあえず張っておくからw

866 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 05:14:19 ]
>865
まかせた

867 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 06:19:14 ]
>>864
とりあえずなんかMemory.diでエラーが出る。
ちょっとソースのぞいてみたらなんか明らかにおかしいところがあった

130: enum BlkAttr; : uint
131: {

868 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 08:29:18 ]
まったくDの開発陣は・・・テスト自動化しろよな
せっかく言語がunittestとかDbCとか用意してるのに全然活用してないじゃん
うぉるたんがたまにテスト通さないのは破壊的な変更しまくるからだろうけど

869 名前:851 mailto:sage [2008/07/27(日) 12:55:38 ]
いろいろな意見ありがとうございます
とりあえず、更新を待ってwktkする言語だというのは伝わってきた
面白そうなので少し触ってみようと思います



870 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:43:10 ]
もし、うぉるたんが死んだり、引退したりしたら、Dも終わるのか?
うぉるたんの跡を継ごうっていう人は出てくるのだろうか。

871 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:46:19 ]
きっとD++がでるよ。

872 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:18:50 ]
>>868
激しく同意。単体テスト用意しれと思うなぁ。
復帰テストはしているようだけど膨大だからかなりの時間かかってそうだし。

873 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:23:25 ]
単体テスト以前にコンパイルしてないんじゃ…

874 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:26:32 ]
>>862
それは
static int a;や
int* a;と似たような宣言で
ref int b; がスマートな気がする

その場合は
a == c って事でいいのかな

ポインタを使わないようにした代わりにこれがあればポインタの代用がかなり効きそうだな
GC周りに矛盾が生じないなら入れてほしいな

875 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:45:10 ]
>>874
 int* a;
はどっちかっていうと、
 const int a; // constは変数を修飾
よりは
 const(int) a; // constは型を修飾
に近いんじゃない?

それで、refは変数の情報な気がするから、ref(T)はいらないと思う。

876 名前:デフォルトの名無しさん [2008/07/27(日) 19:58:19 ]
dmd2.017 + dsource.org->Win32api Bindings
で、ウィンドウプロシジャの中から例外を投げて、
main関数に書いたcatchで拾おうとすると失敗するんだけど、こういうもんだっけ?

877 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:03:18 ]
>>876
そういうもん。

コードの流れは、
メッセージループ -> | user32 | -> ウィンドウプロシージャ
なんで、例外は戻ってこれない。

878 名前:876 [2008/07/27(日) 20:17:30 ]
>>877
即レス感謝。
前いけてた気がしたのは漏れの気のせいでした。
べんきょんなったす。

879 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:55:11 ]
えぇぇ、メッセージループの外のcatchで例外とれてるんだけどこれは何?



880 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:56:21 ]
writeflnとかで自動的にtoString()が呼び出されると、メンバのアドレスが変っちゃうんだけどなぜ?
明示的に呼び出せば、そんなことにはならなかった
アラインメントの問題?GCの問題?

881 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:01:53 ]
>>880
コード付きで頼む

882 名前:880 mailto:sage [2008/07/27(日) 21:34:07 ]
値渡しされてるだけだったorz 正直すまんかった

>>881
ちなみに双方向リンクリスト、つまりSTLのlistみたいなやつ

883 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:46:18 ]
Dの頭のままC#でdelegate使おうとしたら
いちいち宣言しなきゃいけないって面倒だなとおもた

884 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:49:31 ]
>>883
ラムダ式でおk

885 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:03:16 ]
C#3.0からFunc<,>とか使えるんじゃなかったっけ。

886 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 00:33:49 ]
GTK On Dって名前にすれば GOD ってライブラリ名にできるのにそういう風にしないのは
やはり向こうは日本と神の感覚が違うから気軽に使えないのかな

887 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 00:57:59 ]
こういう場合onっていう言い方は正しいのか?
あんまり聞かない気がする。

888 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:01:34 ]
じゃ featuring だ

889 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:04:05 ]
overとか



890 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:08:01 ]
ならopponだ
… oppon 〜は「…を〜と組み合わせて」という意味になる今作った単語

891 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:14:40 ]
oppai
なんでもできる証拠なの〜

892 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:28:19 ]
GTK of D

893 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 02:01:32 ]
Tango の 0.99.7 でバックスラッシュを含んだパスが蹴られるようになったけど、さすがに面倒だぜ。
import tango.io.Console;
import tango.io.FileSystem;
import Path = tango.io.Path;
void main(char[][] args) {
  auto dir = Path.parse(FileSystem.toAbsolute(Path.standard(args[0]))).path;
  Cout(dir).newline;
}
自分の実行ファイルのディレクトリのフルパスが欲しいとき、もうちょと短く書けないかな。

894 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 05:11:20 ]
www.digitalmars.com/d/archives/digitalmars/D/dwt/
dwtのはずなのにアナウンス
中身はちゃんと別みたいだけど

895 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:00:33 ]
std.openrjって、どうしてあるの?誰が使ってるの?
というか、動かないんだけど

896 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:15:14 ]
もうなくなるor/andなくなったんじゃなかったのか

897 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:49:37 ]
>893
記述が長ったらしい代わりにバイナリが小さくなるのがTangoの芸風でしょ。
ちなみにPhobosなら import path; して dirname(rel2abs(args[0])) だ。


898 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:53:45 ]
1.0 と 2.0 の違いって何?

C# の 1.0 と 2.0 ぐらいちがったりするの?

899 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:03:46 ]
dmd1 致命的なバグが無い限り更新されない
dmd2 前進的で素晴らしい変更によってソースを書き直す必要が出来る

このスレを読む限りMは2を使った方がいいらしいぞ



900 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:10:10 ]
最近はライブラリも2に対応してるし、1を使う理由ってあんまない気がするなあ。
安定性求めるなら他の言語を当たったほうがいいだろうし。

901 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:20:34 ]
DMDScriptが使いたいだけで1使ってます

902 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:26:29 ]
変更点そのものは、
www.kmonos.net/alang/d/2.0/features2.html
に出てる。

903 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:02:27 ]
>>900
喧嘩売られてるような気がするのは俺の気のせいだろうな
移行しない理由が聞きたいんだよな

904 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:04:10 ]
何が言いたいのかさっぱり理解できない

905 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:12:21 ]
gdc(mingw)をうまくビルドできるならば
2.0に乗り換えてみたいところだがね。
エラーが回避できなくてあきらめた。

906 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:38:52 ]
>>903
どう考えても気のせいです

907 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:39:36 ]
>>902
popenだけはdmd1にも入れてほしい

908 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:38:02 ]
ところでお前ら typeof(*this)って使ってるかな?
クラス名とどっちがいい?

909 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:51:29 ]
ジェネリックコードじゃなければクラス名の方がいい
時期尚早な過最適化は悪 by Effective C++ ?



910 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:57:08 ]
TangoやDWTが1にしか対応してないから2使えない、って人もいるんじゃね。

>909
"premature optimization is the root of all evil." なら、出典はKnuth様 (1974年)。


911 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:46:20 ]
先進的な変更で言語がよくなってそれと同時に自分のコードがかっこよくなる
この喜びが毎月のように得られるのはDくらい
それが私がDを使う理由・・・信じて

912 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:28:09 ]
static foreachまだなのかなあ。
そんな複雑な変更でもない気がするんだけど、
うぉるたんは他にやりたいことあるんだろうか。

913 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:13:48 ]
DMDってテンプレート再帰でタプル作るとホントすごいメモリ喰うな…

914 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 00:59:01 ]
D言語はアセンブリの夢を見るか

915 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 22:25:38 ]
gc切って、delegateぶん回したらすんごいメモリをくう・・・
あたりまえかもしれんが、scopeとかで回避できんから
すんごい困った


916 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:26:38 ]
www.dsource.org/projects/blaze

これのDemoすごいなあ

917 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:42:39 ]
あ、これ俺も遊んだwww
結構楽しいんだよなこれ

918 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 01:49:17 ]
PC初期に近いの面白さだよね。

919 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 02:24:57 ]
俺の1時間を奪う憎い奴だ



920 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:26:23 ]
template Hoge(){
if(true){}
}
void f(){
mixin Hoge!()
}
なんでif使えないの〜泣

921 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:34:29 ]
>>920
つ static if

922 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:35:46 ]
template mixin は宣言しか書けないのね

923 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 12:43:23 ]
Lisper
C++er


Der
なんちゃって、えへへ

924 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:02:18 ]
>923
PythonistaにならってDistaはどう?
すくなくとも発音はしやすいよw


925 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:41:25 ]
typeof(*this) opDot()
{
    return *this;
}


926 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:36:01 ]
痔主多?
やDなぁそんなの

927 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 15:33:24 ]
D Langer

928 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 16:08:02 ]
グローバル変数をスレッド間で共有できないのをディフォルトにしよう、
という案を検討してるらしい。
bartoszmilewski.wordpress.com/2008/07/30/sharing-in-d/

これだと現行のコーディングとはスタイルが随分かわっちゃうけど、
マルチスレッドの安全性を考えたら良い案だと思う。


929 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:00:35 ]
>>924
Dildo
発音しやすいよ



930 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:12:17 ]
1Der

2Der

931 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:17:02 ]
3ダー!!

932 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:32:21 ]
猪木?

933 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:00:29 ]
>>928
むしろグローバル変数いらなくね?
あと例えばプロパティはsynchronized付きになるとか(俺には善し悪しがよくわからんけど)
これからのマルチコアの世界に向けて最適化していった方がいいのかも

934 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:17:45 ]
locklessがもてはやされる時代に標準でsynchronized付きとか狂気の沙汰としか。

935 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:33:27 ]
そういうもんか
マルチスレッドプログラミングの安全性ももっとコンパイル時に保証できないのかな

936 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 22:24:48 ]
各スレッドが触る変数を確定できるかどうかが勝負という感じかなあ。
pureなら触る変数はプロシージャからのスタックの積み方で決まるから、
そのへんはもう少し楽になる気がする

937 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:14:52 ]
Martianじゃないか?いろんな意味で。

938 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:24:55 ]
static typeof(this) opCall(T...)(T args)
{
    return new typeof(this)(args);
}
newすら書くのが面倒。そんなあなたに

939 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:26:02 ]
pure判定が通るなら原則として大丈夫だと思う。副作用がないということだし。
もうすこし緩めるとスレッドローカル変数しか触らなければ安全だと思うが、これは未実装。



940 名前:924=928 mailto:sage [2008/08/01(金) 01:51:55 ]
>937
ああ、そっちの方が全然いいですね。

ところでGtkDのRC1が8月1日リリース予定なわけだがwktk


941 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:00:45 ]
こうか
template Constructor{
>>938
}
class A{
mixin Constructor;
}
void main(){ A x = A(); }
そういえばstructとclassをコンパチブルにできるのかなー

942 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 18:37:17 ]
構造体のコンストラクタってまだないの?

943 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:04:45 ]
>>942
ずっと無いと思うよ?
「構造体はPODであるべき」って頑なになってるから。

static opCallで代用するしかないんじゃね

944 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:20:33 ]
バグかなバグかな?

--- main.d ---
import func;
void main(){ line(); }

--- fund.d ---
void line(uint lineNum = __LINE__){ }


$ dmd main.d func.d
__LINE__
Internal error: e2ir.c 612

945 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:22:41 ]
いけね、ファイルを分けなくても再現した。

void line(uint lineNum = __LINE__){}
void main(){ line(); }

946 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:10:27 ]
2007年のカンファレンスで構造体にコンストラクタつけるとかなんとか言ってなかったか?
俺の記憶違いかな?

947 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:16:19 ]
リテラルあるしなあ……。

948 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 01:59:50 ]
gdcのsvnで手に入る一番新しいやつ。

std/c/windows/com.d

interface IUnknown
{
HRESULT QueryInterface(IID* riid, void** pvObject);
ULONG AddRef();
ULONG Release();
}

ではなくて、

interface IUnknown
{
static HRESULT QueryInterface(IID* riid, void** pvObject);
static ULONG AddRef();
static ULONG Release();
}

が正しいような気がする。
後者じゃないとビルドできないし。

949 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:25:36 ]
>>948
んなばかなあ



950 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:35:23 ]
>>948
何で前者でエラーになるのか知らないけど、staticは無いと断言できる。

951 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:44:56 ]
大体staticで何をカウントしてるんだ

952 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:13:01 ]
comが何なのか良く知らないので、
エラー回避のためにstaticにしたんだが、
やっぱりおかしいのか。

libphobos/std/c/windows/com.d:240: error: '*LTHUNK0' aliased to undefined symbol '_D3std1c7windows3com9ComObject14QueryInterfaceMWPS3std1c7windows3com4GUIDPPvZi'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK1' aliased to undefined symbol '_D3std1c7windows3com9ComObject6AddRefMWZk'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK2' aliased to undefined symbol '_D3std1c7windows3com9ComObject7ReleaseMWZk'

みたいなエラーがでるんだが、
LTHUNK0なんてソースのどこにも出てこないし謎。

試しにいろいろいじって、たまたまstaticにしたらうまくいったという話。

まあ、comプログラミングなんかしないから、
別に通ればなんでもいいのだが。

953 名前:デフォルトの名無しさん [2008/08/03(日) 13:39:36 ]
さっきちょっと思いついたんだけど変数の変更を一時的に禁止する様な機能ある?

const(hoge, fuga)
{
// hoge, fugaは変更禁止
}
// 変更OK


954 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 13:54:21 ]
void main() {
int hage = 42;

(const typeof(hage) hage = hage) {
writeln(hage); // 42
hage++; // error
}();
}

dirtyすぎる…

955 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 14:06:48 ]
最近ここで晒されるソースを見ても何がなんだかです。

956 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 14:17:12 ]
>>953
pureとか予約語になってるんだし,要望したら入れてくれるんじゃね?

957 名前:953 [2008/08/03(日) 14:41:00 ]
>>954
バグ回避目的なのに手段が真逆に向かっている様なw

958 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:09:29 ]
なんか、バグが云々って言ってたので、
よくわかりませんが、つたない英語で投稿してみました。

www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.bugs&article_id=14747

適当なので、怒られてたり、意思が通じてなかったりしたら
すいませーんっと。


959 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:14:46 ]
ああ、bugzillaに投稿とかのほうがよかったんだろうなぁとか
思ったけど、いいや。やる気ないので、スマヌです。




960 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:16:56 ]
これじゃ、何かいてるかわからないな。
>846
>847
>848

ここらへんの話です。
暑くて駄目だwww


961 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:13:57 ]
一時変数の名前はhigeを使ってください

962 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:43:12 ]
>>953
既出みたいなもんだけど関数のconst引数じゃダメなの?
class A{const void pp(){}}
void f(const A a){
a.pp;
}
void main(){
A a = new A;
f(a);
}

963 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:45:56 ]
値型でもこう
int i=1;
g(i);
void g(const ref int i){
  i++; // error
}

964 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:47:26 ]
sakuraiさんが久しぶりにDの話題してるの見たw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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