1 名前:デフォルトの名無しさん [05/02/12 10:35:10 ] D言語一筋で10年ほど勉強しました。 D言語のことなら知らないこと意外ならすべてわかる。 だからなんでも聞いてくれ。 ただし、プライベートなことには答えられねーぞ
142 名前:デフォルトの名無しさん [2007/04/09(月) 09:45:55 ] 標準入力をバイナリモードにすることってできますか? D言語のリファレンス見た限り無理そうだったので、 Cのやり方で import std.c.stdin; extern(C) int setmode(int, int); setmode(fileno(stdin), O_BINARY); とかやってみたのですが、うまくいきません。 最終的に #include <stdio.h> #include <fcntl.h> #include <io.h> void setbin(void) { setmode(fileno(stdin), O_BINARY); } こんな感じのCファイルを作って extern(C) void setbin(); としてコンパイル時に.dと一緒にCの.objファイルも指定したのですが、リンクがうまくいかないみたいです。 なんか根本的な勘違いをしているような気がします。 こういう場合どうすればいいのでしょうか。
143 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 06:45:25 ] >>6 日本語でおk
144 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:18:14 ] >>142 確認してないから、一応聞くが、マルチしてないよな? してなければ以下を試してみてくれ。 もしマルチしてたら帰ってくれ import std.file; int main() { char [] k; k.length = 10; foreach (int c, v;k) k[c] = c; write ("new.txt", k); return 0; }
145 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:19:20 ] 本スレのほうにまるちっち
146 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 02:01:19 ] >>145 むしゃくしゃして まるちっち作ってやった 反省してない (((()))))))))))) 伐, ,/リリ l2] 2] 3 ( ε ノ 「 ll二ll l (_l ., (_) (__(__l
147 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 02:41:22 ] マルチってなに〜?
148 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 04:10:54 ] 2chにおけるマルチの用法とは「俺は知ってるんだぜ」と 専用ブラウザを駆使し全スレヲッチ/5秒でこなす重度の2ch依存者が 公共の利益を代表しているかの様に錯覚し声高につまらない事を指摘する行為 忙しい朝っぱらに難癖付けて来るゴミ回収場常駐のキチガイババアと同種です。
149 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 16:33:40 ] あらやだ、自爆してるざます。
150 名前:デフォルトの名無しさん [2007/05/11(金) 02:40:24 ] 構造体で struct foo { int x = 0; } foo mat[100]; って使うときに配列の構造体の変数xすべてに代入したいとき mat.x = 1; とかやるとプロパティじゃねぇみたいな感じで怒られるから 構造体の初期値で代入したり mat[i].x = 1ってやってループ回して代入してるんですが 何かもっと便利な方法って無いですか?
151 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 02:50:07 ] foreach(ref s; mat) s.x = 1;
152 名前:デフォルトの名無しさん [2007/05/11(金) 03:09:35 ] 型タプルってテンプレートの引数に渡せない?
153 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:27:00 ] memset(&mat[0], 1, 100);
154 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:24:16 ] >>151 ,153 150です 便利な方法を教えていただきありがとうございました^^
155 名前:デフォルトの名無しさん [2007/05/22(火) 00:33:27 ] DMDのコンパイラで警告は表示するけどそれを無視してコンパイルする設定 にするにはどうすればいいですか?
156 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:43:56 ] Dは方針として警告というものはないんじゃなかったっけ
157 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:45:31 ] あるがな。 dmd -w
158 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:30:43 ] たしかにdmd -wだと警告でコンパイル止まるな
159 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:35:40 ] 長くてすみません。これの実行結果って30を期待したんですが、 そうならないのは何でなんでしょうか? class A { this() { int f() { return x * 3; } b = new B(&f); } int g(int n) { x = n; return b.g; } private int x; private B b; } class B { this(int delegate() f) { this.f = f; } int g() { return f(); } private int delegate() f; } void main() { A a = new A; dout.writefln(a.g(10)); }
160 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:46:19 ] 30 になるけど?
161 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:54:31 ] -debugモードだと3、-releaseモードだと362882156になった -debug -Oで30、-release -Oで362882156
162 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:55:36 ] うお。オプションで変わるのか。
163 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:57:49 ] -O3 だとちゃんとなってるのに、 -O だと変になるな。
164 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:04:31 ] int f() { return x * 3; } ここのxがインスタンス不明になるからじゃないの?
165 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:08:49 ] ああ、f が内部関数になってたのか。 これだと this が伝播しないってことか?
166 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:15:35 ] そんなことはないだろう。 b = new B({ return x * 3; }); もおかしな挙動をするし。
167 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:19:25 ] まあ、バグだな。
168 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:53:21 ] b = new B({ return x * 3; }); これだけの情報でどうやって x が A の面罵だって分かるのかな?
169 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:56:16 ] ああ、 this が電波するのか。 そうなってくれないと困る罠。 まあ、バグだな。
170 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:03:13 ] D言語って一瞬も流行らなかったな
171 名前:デフォルトの名無しさん [2007/05/29(火) 22:24:31 ] >>170 なに言ってんの? 超流行まくりだよ、俺の頭の中では。
172 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 13:36:10 ] まだ仕様変更やコンパイラのバグ多いし これからだろD言語は ・・・だよな?
173 名前:デフォルトの名無しさん [2007/06/02(土) 17:43:29 ] 動的配列の初期化ってまだ実装されてないですよね? 静的配列に動的配列渡すのもまだ未実装なんでしょうか?
174 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 17:50:26 ] void main() { int[] a = [1, 2, 3]; int[3] b = a; } こういうこと?言わんとしていることがちょっとよくわからん。
175 名前:173 mailto:sage [2007/06/02(土) 18:08:23 ] 言葉が足りずすいません 書いてくださったとおりの意味です
176 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:17:25 ] どの言語もLISPに近づこうと必死だな
177 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 20:45:59 ] Lispは神域に達してるからな。 人が神に近づこうとするのは自然だ。
178 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 23:49:29 ] Visual D マダァ?(・∀・ )っ/凵⌒☆チンチン
179 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 00:20:50 ] それよりまずはTangoとDFLに期待
180 名前:デフォルトの名無しさん [2007/06/10(日) 02:25:38 ] D言語で行列積とか計算するのに 標準的なライブラリってありますか? 既出でしたらすいません
181 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 03:19:36 ] >>180 漏れは聞いたことないな つか他の言語でも百家争鳴なかんじじゃね? テンプレートのライブラリも今のところ貧弱っぽいし 他の言語で書かれてあるのを利用するかポーティングするか もしくは自分でつくるかしたほうがいいかも
182 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 03:36:07 ] CLAPACK を呼ぶとか。
183 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 02:17:50 ] POLICEを呼ぶとか
184 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 00:35:55 ] 俺を呼ぶとか。
185 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 05:36:33 ] 嵐を呼ぶとか
186 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:56:03 ] ちょ おまいらwwwww ところでdmd 1.x系統で何事もなく動いてたプログラムを dmd 2.0でコンパイルしたら実行時に Error: Stack Overflow って出て止まるんだけどこれはプログラムに難点があると見るべき?
187 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:03:23 ] コンパイラがスタックオーバーフローするなら、コンパイラの不具合くさいが、 実際にソース見てみないことにはわからんな。
188 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:19:59 ] >>187 レスサンクス ソース眺めてたら原因の箇所がつかめたっぽいので ちょっと調べてみるよ
189 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 02:47:37 ] dmd 1.x系と2.x系ってお手軽に切り替えれたりする?
190 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 05:44:24 ] D1.xとD2.xのソースコードに互換性はない。
191 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 11:28:07 ] うはwwwwwwおkwwwwwww コンパイラはオプションで切り替えれたりしない?
192 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:02:55 ] dmd -v1
193 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 19:55:55 ] それやるとdmd 1.x系のでコンパイル通ってたのでも通らなかったりする
194 名前:デフォルトの名無しさん [2007/07/07(土) 01:23:23 ] D言語で配列aの要素全体を5で割りたいとかかけたいときって a * 5 a / 5 とかいうやり方が許されていないのは配列演算がまだ実装されてないから?
195 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 01:35:07 ] yes.
196 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:22:50 ] >>195 thanks.
197 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:33:25 ] FORTRAN 並みの配列演算が行えるといいな。
198 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:34:08 ] 間違った。FORTRAN じゃなくて Fortran だ。90 以降。
199 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:12:44 ] 別に間違いというほどのことじゃないだろ どのみち今の段階じゃバグ多すぎでとても数値計算に使う気になれナス
200 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:28:26 ] まぁそれでも将来的にはFortran並みの実装を期待
201 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:33:08 ] a[:] = b[:] * 2 + c[:]; とか。
202 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 04:04:18 ] 標準関数にmatmulも入って欲しいな 配列演算じゃないけど個人的には**も使いたい
203 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 04:20:42 ] そういえばLatex→Fortranと入ってきた俺はC言語にいたって pow関数を使わなきゃいけないと知ったときやたら面倒だなと思った
204 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 09:36:57 ] powってコストが高そうなイメージがあるんで掛け算で書いてたなあ
205 名前:デフォルトの名無しさん [2007/08/10(金) 01:19:29 ] age!()
206 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 03:02:37 ] こっちはずいぶん過疎ってるなぁ・・・・