1 名前:デフォルトの名無しさん mailto:sage [2012/07/31(火) 00:05:43.45 ] プログラミング言語 D (D Programming Language) について語るスレッドです。 ■本家 dlang.org/ - 公式(英語) www.kmonos.net/alang/d/ - 公式の和訳 d.puremagic.com/issues/ - D言語バグ報告 https://github.com/D-Programming-Language - D言語開発リポジトリ ■Wiki dusers.dip.jp/ - D言語友の会(日本語フォーラムあり) prowiki.org/wiki4d/ - Wiki4D(公認Wiki) ■前スレ D言語 Part29 toro.2ch.net/test/read.cgi/tech/1329714331/ ■過去スレ、関連スレ makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000
229 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 10:10:20.29 ] thisはクラスのインスタンスを指す参照変数で、&thisはその参照を指すポインタを得る。 参照変数の内容にはポインタを含むから、&thisはポインタのポインタになるってわけ。
230 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 10:12:39.89 ] s/ポインタ/アドレス/g
231 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 12:10:55.47 ] >>226 そういう場合に>>219 を使う。 thisからアドレスを得たいなら cast(void*)this でいい。
232 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 14:04:30.06 ] 基本的には>>219 でいいけど、CがopCastを定義していると動かない もうちょっとよいやり方はこちら C c = new C; void* p = *cast(void**)&c;
233 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 15:43:06.33 ] Dのマスコット作ってる暇があるなら ウォルタくんはこういうややこしい部分を図解してやればいいのになw
234 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 16:20:28.86 ] ややこしいのか・・・?
235 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 16:53:50.45 ] クラスのアドレスって何に使えるんだろう?
236 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 17:11:05.96 ] memsetとかか。ガクブル。
237 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 17:50:18.80 ] SetWindowLongしたりemplaceしたインスタンスをfreeするのに使ったり
238 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 00:00:18.60 ] リンカが出す「Error 32: Data Outside Segment Bounds : _DATA」ってエラーはどんな意味なんだい 何をすれば解決するのかさっぱりで
239 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 03:18:43.15 ] みんなのおかげで次のステップに移ることができたよ ありがとう
240 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 07:03:55.03 ] >>238 align絡みだと思う こっちでは align(1) struct S {...} みたいなのがあると出た struct S {align(1): ... } なら問題無しみたい
241 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/27(月) 20:08:06.06 ] Warning 178: .LIB pagesize exceeds 512 助けて! -L/PAGESIZE:1024を付けてもダメだった。
242 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/27(月) 20:37:29.03 ] ライブラリが大きすぎるということか? でも二つに分けたくないな。
243 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 20:43:50.09 ] 単純な数値定数はconstではなくenumにすると、シンボルが出力されないからライブラリサイズが減るかも。
244 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 21:38:26.40 ] OPTLINKを甘く見るな 吐いてるエラーメッセージが真実とは限らない
245 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:03:47.65 ] 2.060でalign属性がいかれちまってるんですが、 これはD言語erにとって大したことない感じなの?
246 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:18:38.10 ] なに、ちょっとした崩壊的変更だ 一日ちょっと楽しめたぜ
247 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:53:42.34 ] align(1)が変更つうかぶっ壊れてる気がするんですが、変更なの?
248 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:56:21.38 ] struct S {align(1): ...} でサイズが計算と合わない
249 名前:デフォルトの名無しさん [2012/08/28(火) 01:21:00.19 ] d.puremagic.com/issues/show_bug.cgi?id=8377 うぉるたんが disastrous bug って言ってるヤツかな 緊急リリースが出るかと思ってたけど出ない
250 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 06:30:28.64 ] こういう話を見るたびに思うんだけど Dがつく単語をわざと選んでんのかな
251 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 10:10:20.94 ] 選んでるかまでは知らんが 破壊とか崩壊とか解体とか災厄とか絶望とか、 その手の単語はラテン語源のことが多いけど、 そっちで接頭辞 de- とか dis- とかがつく単語で表現されてるもんだからもともとDで始まる単語が多い
252 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 10:23:28.24 ] destroy
253 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 11:39:10.70 ] dildo
254 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 19:18:25.79 ] dragonic change
255 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 20:15:31.49 ] "D"にこれ程深い意味があったとは
256 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 20:46:15.28 ] Dragon → Dlagn → D lang
257 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 21:06:46.87 ] >>248 align(1) struct S{ align(1): ... }
258 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 21:25:16.15 ] Dのあのマスコットはドラゴンなのか?
259 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 22:33:55.88 ] Dの意思
260 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 03:17:30.61 ] The D like a mascot is a Doughnut. You can eat it everywhere.
261 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 04:09:05.33 ] void main() { import std.stdio; "hello, world".writeln(); } > a.d(4): Error: undefined identifier 'writeln' ___ ━┓ / ― \ ┏┛ / (●) \ヽ ・ / (⌒ (●) / /  ̄ヽ__) / . /´ ___/ | \ | |
262 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 04:10:47.72 ] なんだそのエラーメッセージwもっと言うことあるだろ
263 名前:デフォルトの名無しさん [2012/08/29(水) 13:40:06.45 ] >>261 d.puremagic.com/issues/show_bug.cgi?id=6185 仕様。フリー関数じゃないとダメってどこかで見た気がする だがしかし関数内のインポートはバグだらけだから避けるのが吉
264 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 22:32:14.61 ] そうかー 関数内インポートは控えておくかな
265 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 22:33:24.43 ] 昨日>>261 見て関数内で使えることを知って張り切って関数内import入れまくった後なのに・・・
266 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 23:12:02.70 ] imporせずに関数使いたいことが稀によくある デバグのためにpragma(msg)やる時とか
267 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 03:16:30.64 ] え、インポなの!?
268 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/30(木) 12:32:22.03 ] 「Unexpected OPTLINK Termination」で見事にこけた。 d.puremagic.com/issues/show_bug.cgi?id=6144 バグだらけだな、こりゃ。
269 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/30(木) 12:52:06.69 ] #define HANDLE_MSG(hwnd, message, fn) \ case (message): return HANDLE_##message((hwnd), (wParam), (lParam), (fn)) これをD言語に翻訳するとどうなる?
270 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/30(木) 12:57:45.60 ] Unexpected OPTLINK Termination at EIP=00402C5C EAX=0000027C EBX=0052A2F8 ECX=00000001 EDX=00039FFF ESI=02ED3083 EDI=00003D84 EBP=00000006 ESP=0012FF48 First=00402000
271 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 13:16:15.89 ] OPTLINKはD言語最大の癌
272 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 14:10:35.23 ] Linuxばんじゃーい!!!
273 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 14:12:25.30 ] gdcがんばれー><
274 名前:デフォルトの名無しさん mailto:sage [2012/08/31(金) 05:36:40.54 ] HANDLE_MSG(m_hWnd, WM_CLOSE, Cls_OnClose); case WM_CLOSE: return HANDLE_WM_CLOSE(m_hWnd, lParam, wParam, Cls_OnClose);
275 名前:デフォルトの名無しさん [2012/08/31(金) 17:52:40.07 ] 文字列ミックスインで頑張ってここまではできた switch (msg) { mixin( makeHNDR!(hwnd, WM_MSG1, "handler1")() ~ makeHNDR!(hwnd, WM_MSG2, "handler2")() ~ "" ); default: } ideone.com/oNThI
276 名前:デフォルトの名無しさん mailto:sage [2012/08/31(金) 21:55:06.72 ] 汚いなぁそれやるなら公式で紹介されてるcond使えし
277 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/31(金) 22:32:48.67 ] >>275 有り難う。いい方法見つかった。
278 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/09/01(土) 17:37:01.86 ] GDCでスタティックライブラリを作る方法、教えて。
279 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/01(土) 17:50:07.41 ] 「ar rv ライブラリ オブジェクト」でいいのか? エラーがでるけど。
280 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/01(土) 18:03:05.77 ] GDCでd2hello.exeがビルドできるようにしてください。お願いします。 dl.dropbox.com/u/72753355/wonders-beta.zip
281 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 18:33:27.50 ] そういうのはtwitter使ったほうが早いよ
282 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/01(土) 18:39:22.97 ] >>281 twitter反応がない。。。つぶやき方が悪いのか
283 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 19:07:27.04 ] つぶやきシローみたいなノリでいくといいよ
284 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 19:55:25.84 ] 質問するときは #dlangつけれ
285 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 20:14:49.10 ] さすがにそれはやってるだろう
286 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 20:32:44.54 ] D言語disりつつ質問すれば、反応はしてくれるはず
287 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/09/01(土) 20:33:10.08 ] C:\crossdev\gdc\v2\build\i686-pc-mingw32\libphobos/../../../gcc-4.6.1/libphobos/ core/sys/windows/windows.d:2780: multiple definition of `MAKEINTRESOURCEA@4' libWonders7Wide.a(winuser.o):winuser.d:(.text+0x10): first defined here 元から有るライブラリと重複しているみたいだな。 libphobosをリンクしない訳にもいかないし。
288 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 20:53:37.13 ] D言語に関連してる限りはここでもいいんじゃないの 他の言語と違ってエラーメッセージがコンパイラ側のバグとかもよくあるし。 全く関係無くしゃしゃり出てたらさすがに余所でとか言いたくなるけどそういうわけでもなさそうだし。
289 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 20:55:31.57 ] >>287 いや、普通に考えてwindows.hの代替ライブラリ作ってるなら core.sys.windowsとかをimportしちゃ駄目でしょw
290 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/01(土) 20:57:00.66 ] >>287 関数名変えて、aliasつけて解決した。
291 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 21:01:15.91 ] >>289 プログラミング初心者レベルだな…
292 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/01(土) 22:13:13.80 ] >>289 そんなものをimportした覚えはないが
293 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 22:14:41.11 ] もしかしてWinMainとか使ってたり なわけないか
294 名前:デフォルトの名無しさん [2012/09/02(日) 12:39:24.76 ] phobos の中でこっそり public import して"感染"状態を引き起こす奴がいる 潜在的にバグと言っていいんじゃないかな それと、大きめのプロジェクトで -g(デバッグシンボル) をつけると OPTLINKがゴネることがある
295 名前:デフォルトの名無しさん mailto:sage [2012/09/02(日) 22:30:19.52 ] これはどういうこと? dmd con.d →Error: cannot read file con.d mv con.d co.d dmd co.d →OK
296 名前:デフォルトの名無しさん mailto:sage [2012/09/02(日) 22:46:35.08 ] void main() { class Base{} class Derived : Base{} alias Base delegate(Base) P; P p1 = (Base b) => new Base; // ok P p2 = (Base b) => new Derived; // ok P p3 = (Derived b) => new Base; // NG P p4 = (Derived b) => new Derived; // NG } p3, p4はいつできますのん
297 名前:デフォルトの名無しさん mailto:sage [2012/09/02(日) 23:01:22.48 ] Derivedしか受け付けない関数にただのBase渡せちゃうからダメじゃないの?
298 名前:デフォルトの名無しさん mailto:sage [2012/09/02(日) 23:23:09.92 ] イベントハンドラに使いたいんだけど無理かぁ・・・
299 名前:デフォルトの名無しさん [2012/09/03(月) 01:01:54.87 ] >>295 たぶんOSの予約デバイス名に引っかかってる
300 名前:デフォルトの名無しさん mailto:sage [2012/09/03(月) 01:49:11.93 ] そういや、CONCONバグとかあったよな。ああ懐かしき9x…
301 名前:デフォルトの名無しさん mailto:sage [2012/09/03(月) 02:55:40.08 ] Call of Duty だな
302 名前:デフォルトの名無しさん mailto:sage [2012/09/03(月) 11:36:04.87 ] 納得いかねー!! d.puremagic.com/issues/show_bug.cgi?id=502 ↓こういうアホライブラリは一体どうしてくれよう… setXXX はないけど getXXX に final つけちゃった☆
303 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/04(火) 14:56:22.65 ] codepad.org/xa1mI004 codepadのDコンパイラって古いんですね。
304 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/04(火) 15:05:15.38 ] GDCもバグだらけ。やってられない。 https://bitbucket.org/goshawk/gdc/issue/359/internal-compiler-error-in-toctype-at-d-d D言語やめよっかな?
305 名前:デフォルトの名無しさん mailto:sage [2012/09/04(火) 15:13:18.79 ] かまってちゃんきたー
306 名前:デフォルトの名無しさん mailto:sage [2012/09/04(火) 15:30:22.90 ] D2が安定してもどうせD3で破壊的変更が繰り返されるのでそれに付いて行く覚悟のない奴はさっさとやめればいいよ
307 名前:デフォルトの名無しさん mailto:sage [2012/09/05(水) 01:13:40.58 ] >>304 やめるなんて勿体ない そこまでの開発意欲があるのなら コンパイラのバグ退治もしながら言語にも良い影響を与えてやってくれ
308 名前:デフォルトの名無しさん mailto:sage [2012/09/06(木) 08:08:40.62 ] 最初だけ食いついて飽きたらポイしたのに俺のおかげでDは成長したみたいな顔してる人も居たような居なかったような 継続してなんかやってくれてる人はありがたい
309 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/09/06(木) 13:58:19.14 ] >>304 のバグが修正されるまで、Wondersの開発を中断します。
310 名前:デフォルトの名無しさん mailto:sage [2012/09/06(木) 20:38:56.38 ] チェンジログに大量に追記されているのに気づいた。 でもこのままだと公式ドキュメントに反映されないっての…どうすんのさ https://github.com/D-Programming-Language/druntime/commit/a9c2c6ca76e8a1767759cc7c642924c2ee57330e
311 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 01:28:05.11 ] ttps://github.com/D-Programming-Language/dmd/pull/1099 だれかこのおっさん止めてー
312 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 06:37:33.79 ] >>311 assertが有効になってるかどうかでの分岐だろ あって困るようなもんでもないと思うが…
313 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 10:33:16.99 ] `assert({ /* ... */ return true; }()); これで十分。
314 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 11:42:20.78 ] そういえば version (release) がないと assertに対応する条件コンパイルは書けないんだったな そっちの方が潰し柿食うと思うんだが
315 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 15:32:21.43 ] >>311 なんてこった、敵の動きは早いぞ! dlang.org/version.html#PredefinedVersions
316 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 16:52:17.06 ] D_NoBoundsChecks これ? これがどうしたの?
317 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 19:15:49.71 ] もはやコンパイルオプションでversion出来たらいいよねってレベル
318 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 20:58:13.07 ] version (is > 3.141) こんな感じ?
319 名前:デフォルトの名無しさん mailto:sage [2012/09/07(金) 22:23:45.20 ] @property以外は引数なくても括弧省略できなくなった理由ってなんなんですか? って、あれ? 今試したらかっこつけなくても怒られなくなってる。 元からそうだっけ?
320 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 00:16:13.87 ] -property enforce property syntax
321 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 00:55:19.90 ] なるほど
322 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 18:07:27.84 ] trunk見てると Win64の文字が舞い踊って次のリリースが楽しみだ たぶん全く関係ないところにも大量のreg(ry
323 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 18:21:07.23 ] Win64で3Dポリゴンの演算能力が!
324 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 19:39:30.27 ] いやしかしCPUが64になってもポリスペックはGPUに依存するんじゃないか
325 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 20:13:55.89 ] ニンテンドー64の話をしてるんだわさ!
326 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 23:11:14.11 ] いや、今まで「OPTLINKの制約でゴニョゴニョ…」と先延ばしにされてきた問題が 一挙に解決…!! するはず てかリンカのソースマダー? チン、チン
327 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 04:34:40.90 ] ランカ・リー?
328 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 16:58:30.88 ] D言語で動的ジャグ配列ってどうやるの? ↓? int[/*a3*/][/*a2*/][/*a1*/] a = new int[a1][a2][a3];
329 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 17:04:15.96 ] 他の言語と同じように↓みたいにはできるのですが、もっとシンプルにはならないでしょうか a = new int[][2]; a[0] = new int[3]; a[1] = new int[3];