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


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

D言語 Part14



1 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:10:24 ]
プログラミング言語 D について語るスレッドです。
過去スレは >>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フロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://www.sun-inet.or.jp/~yaneurao/dlang/
ttp://wisdom.sakura.ne.jp/programming/d/


175 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:03:28 ]
っ gtkD

176 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:22:53 ]
Duit
www5.ocn.ne.jp/~tane/diary/d2007_02.html


177 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:24:50 ]
>>175-176
ありがとうございます
調べたら色々出てきたので
いくつか比較してみたいと思います
ttp://www.autla.com/news/index.php?GUI%B3%AB%C8%AF%A4%CB%A4%C4%A4%A4%A4%C6


178 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 11:56:11 ]
ttp://d.hatena.ne.jp/misky/20070806
これってどうなんじゃろ? 仕様外?

179 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:50:22 ]
inが通るなら、outも通らなきゃねとおも

180 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 13:09:37 ]
コンパイラ自身がassertion failureって言ってるなら
間違いなくコンパイラのバグだと思うけど。

181 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 13:11:52 ]
どっちが?
inが通るのが?
それともoutが通らないのが?

182 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 14:26:28 ]
コンパイラのコード(.cファイル)内でassertion failureを起こしてるから
コンパイラにバグがあるのは確定。

関数リテラルでは"FunctionBody"が書ける仕様になってる。
これはin、out、bodyが書ける構文要素のことなので、
outを書けないのはバグ。
inが書けるのは仕様通り。
delegateを省略した場合に事前・事後条件が書けないのはバグ。

183 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 14:57:24 ]
ところでWin32APIを軽くラップしようとしたら、
char[]をnullに出来ないので困っていたりする。

func(char[] str){
  win32api(toStringz(str));
}
func(null);

とするとnullが""に暗黙変換されちゃって、funcにnullが持ち込めない。
nullableみたいのって無かったっけ?



184 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 15:16:56 ]
str is null ? null : toStringz(str) では

185 名前:183 mailto:sage [2007/08/06(月) 15:31:32 ]
>>184
func()と同じ理由でtoStringz()もnullを受け取ることはできないので、あまり意味はないかと。
toStringz(null)はtoStringz("")として呼び出される事になるので。

って、そう考えるとtoStringz()も使っちゃダメってことじゃないか。
めんどくせーなー。

186 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 15:41:08 ]
void main() { int[3] a = [1,2,3]; }

実行時に "Error: Stack Overflow" ってなるんだけど、何が悪いのでしょうか?
DMD 2.003を使ってます。

187 名前:184 mailto:sage [2007/08/06(月) 16:05:29 ]
>>185
いやいやいや、toStringzにnull渡してないから。こう。
 void func(char[] str){
  win32api(str is null ? null : toStringz(str));
 }
実際には何回もつかうだろうから関数化すりゃいいと思う。

> toStringz(null)はtoStringz("")として呼び出される事になるので。
違う。nullはnull。toStringzの実装が特に""とnullを区別してないだけで

188 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 16:06:30 ]
>>184じゃないが
str is null ? null : toStringz(str)
なのに
toStringz(null)
が出てくる理由がわからんし、
ポインタ型にnullを渡すと(p==0)になるでしょ常考。

189 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 16:10:06 ]
>>182
writefln(array[out(i) { assert(i<a.length); } body { return 4; }()]);
仕様によれば、こういう変態的なコードもありなんだな

これ試してて気づいたんだが、
writefln(array[{ return $-1; }()]); が、
writefln(array[{ return array.length-1; }()]); と等価になってないっぽい。

190 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 16:15:23 ]
$の方値がぶっこわれてるな

>>186
DMDのバグ

191 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 16:24:44 ]
>>185
空のchar[]とnullは区別できないよ。

import std.stdio;
void main() {
writefln("" is null); // false
// 文字列リテラルはNULターミネータを持っている。
char[] s;
writefln(s is null); // true
// 配列の初期値はnull
s = "".dup;
writefln(s is null); // true
// NULターミネータは複製されない。
s = "aa".dup; s.length = 0;
writefln(s is null);
// 長さを 0 にしても再利用のため(?)に同じ場所を指し続けている
}

192 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 16:50:58 ]
ちなみに、こういう気持ち悪いことにもなってるから注意が必要。

import std.stdio;
void main() {
string a = "";
writefln(a is null); // false
writefln(a == null); // true
}

193 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 17:41:04 ]
win32api(str.length ? toStringz(str) : null); で良くね?



194 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:06:38 ]
>>191-192
なるほど

195 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:52:03 ]
win32api(str.ptr ? toStringz(str) : null);
とかどうよ

196 名前:183 mailto:sage [2007/08/06(月) 21:58:03 ]
ウッヒョー。今まで仕様を勘違いして覚えてたのか俺は。
・配列はnull値を取れない
・nullは長さ0の配列に暗黙変換される
とばかり思ってました。

えーと、正しくはこういうこと、でいいんでしょうか?
・配列はnull値を取れる
・null配列はほとんどの場面で長さ0の配列と同じ挙動をする
・両者はis nullの結果で区別できる

>>184さんごめんなさい。正しくその書き方で事足りました。
みんなもありがとう。おかげでアホな誤解から解放されました。

でも("".dup is null)がtrueになる理由だけよく分からない……。

197 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 22:44:21 ]
あれ? www.kmonos.net/alang/d/arrays.html
の配列のデフォルト初期化の項には
>  動的配列は要素数0に初期化されます
て書いてある。

198 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:00:28 ]
>>196
・要素数が0になった場合、変数自体がnullに書き換えられる場合がある。

199 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:20:21 ]
大昔にも同じ議論をみたな。
結局なんかうやむやなまま今日に至るわけだけれども。

yaneu.com/cgi/yanebbs/dobbsr.cgi?a=view&topic_id=1069952491&res_id=542-600
news://news.digitalmars.com:119/bu5gub$13kh$1@digitaldaemon.com

200 名前:デフォルトの名無しさん [2007/08/07(火) 05:20:19 ]
ttp://d.hatena.ne.jp/misky/20070806
うむむやはりこれはバグでしたか...
もやもやがすっきりしました
ありがとう賢い人たち

201 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 05:47:18 ]
って、あげてしまった
(ご迷惑おかけしてすいません)

202 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 05:48:21 ]
あげたら迷惑なの?

203 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:00:22 ]
>>200-201
D言語をいじくる夏休みとはうらやましいかぎりだぞ




204 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:30:08 ]
gdcはどうなってるんだい?

205 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 09:42:02 ]
DFL 0.9.6 リリース

206 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:18:16 ]
>>205
ちょっとコントロールが追加されたくらいかな

207 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:30:28 ]
コンパイラにコンテンツアシストの支援機能を早く組み込め。
そしたらあっという間に普及するから。

208 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:36:51 ]
こんな言語仕様が不安定な言語は普及しないよ。
D が流行るのは言語仕様が安定してからでいい。

209 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 02:16:30 ]
つまりヲルターが死ぬまで流行ることはないということか

210 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 02:28:35 ]
つまり、Rubyは、Matzが死ぬまで流行ることはないのだろうか

211 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 02:41:25 ]
デリゲートリテラルの引数の型を推論できるようにならんかなあ。

void func(int delegate(int) dg);

func( (i) { return i * 2; } );
とか、願わくば
func(i => i * 2);
とか書きたい。

212 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 05:41:35 ]
後のほうの記法がきもい

213 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 07:00:49 ]
素人乙



214 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 08:36:05 ]
ラムダ記法はほしい

215 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 08:47:55 ]
>>211
現状の戻り値推論だけなら、要求されているdelegate型と
生成したdelegate型が異なれば型エラー出るけど、
なんかその推論をやっちゃうとエラーの元になりそうだな。

むしろ仮引数名の方を省略したい。
(int){return @int * 2;}
みたいな。
普通の関数でも省略できるとなおよし。

216 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:05:43 ]
今のままでいいよ
下手に省略すると、人間もコードから内容を推論しなきゃならなくなるからめんどい

217 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:31:20 ]
DとObjective-Cを混ぜてみたいな。スクリプト言語より強力になりそうな気がしてね。

218 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 17:10:17 ]
Objective-C++は失敗作だったけどな

219 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 18:54:09 ]
開発環境>>ライブラリ>>>>>言語仕様
って感じで、D言語は3.0になったとしてもはやらなそう

220 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 20:14:16 ]
ヲルタータンが「言語仕様はこれにて平定!」って言わない限り無理ぽ

221 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:38:42 ]
これにて閉廷!

222 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:59:34 ]
これにて閉経!

223 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 00:00:11 ]
はたして、進化をやめたDに使う価値はあるのだろうか。



224 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 00:05:11 ]
せめて処理系がほぼ下位互換でないと使う気にはなれんね

225 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 03:31:04 ]
>>223
価値ないな…
D言語は変り続けることが美しいのさ…

226 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:00:04 ]
罷り間違ってD言語が普及してしまったら
下位互換性を重要視するようになると思うよ

227 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:00:49 ]
それは困る

228 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:02:15 ]
そんときゃE言語作ればいいじゃない

229 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:03:32 ]
それはいい言語になりそうだな。

230 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:05:05 ]
>>229

231 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:24:35 ]
>>230は尊敬しているようです

232 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:31:07 ]
E言語はもうあるけどな

233 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:34:54 ]
かなりのものは既に使われてるよな。
何か昔一覧を載せてるサイト(不正確に見えたが)があったけど、見つからない。



234 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 07:05:25 ]
scope File("hoge.txt") s;
なんていう表現があったら時々便利そうだなあ
いらんけど

235 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 13:15:47 ]
>233
ttp://www.kmonos.net/alang/abc/
これか?

236 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 13:49:49 ]
>>234
scope s = File("hoge.txt");
でいいと思うよ。

237 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 18:18:19 ]
更新マダー

238 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 18:22:54 ]
こっちのスレは1年以上待って、もっと待つつもりで、実装はさらに待つつもりなのにおまいらときたら
ttp://pc11.2ch.net/test/read.cgi/tech/1149440647/

239 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 23:08:43 ]
>>238
なんだか誠に申し訳ないw
でもDはDで……仕様確定マダー?

そいやDの仕様もだいぶ増えてきた感があるけど、
まだコンパイラの実装はC++ほど大変でもないんかな?
だとしたらどっかに決定的な違いがあるんだろーか。
教えてC++の偉い人ー。

240 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 23:14:38 ]
ウォルタたんがDの理念の一つに掲げているのに
「処理系の作りやすさ」があるから、そうなんだと思うよ。知らないけど。

241 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 02:22:03 ]
だれかDコンパイラを自分で作ってる人とかいないのかな

242 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 02:25:12 ]
少し前にd.D.announceに自分で作ってみたとかいう人がいたような

243 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 15:01:01 ]
>>227
なんかわろたw



244 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 17:28:29 ]
>>238
もうD言語使えよと言いたくなる場面ばっかりでわろた

245 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:00:30 ]
DもC++0xも永遠に完成しない

246 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:05:45 ]
C++ユーザがもっとDに流れてくれたらいいのに
似たような言語に人的資源が分散してるのがもったいない

247 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:09:41 ]
やはりここは「ぼくらの」形式で間引きだな

248 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:14:44 ]
C++用のライブラリ作ってるけど、
Dポーティングを念頭に書き換え始めてる
というかDで類似の仕様設計を書き始めてる
でも.NET用のポーティングもありかなと思い始めたり
D#マダー

249 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:36:03 ]
普及するしないの分かれ目は
もはや言語がどうこうってところじゃなくなってるんだけどね


250 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:39:05 ]
ちゃんと標準がTangoに置き換わるまで実質ライブラリさえ作れないような状況だろ。
今作ってもどうせ作り直しになるし。

251 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:54:19 ]
本当に完全にTangoに置き換わるのなら、もうTangoでライブラリ作ればいいだけの話のような。
……本当に標準がTangoに置き換わるって信じてもいいのか?

252 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:01:02 ]
>>251
それが信じられないから困る

phobosがダメなところとTangoの良いところってどんなのがある?
phobosはダメだダメだと聞くがあまり具体的には出てこなくて
まずは文字コード周りかな

253 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:07:14 ]
みんなエディタなに使ってるの?



254 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:28:40 ]
個人的には入出力関係はTangoの方が好きかなぁ
コンテナ(コレクション)についてもTangoがほしいね
あと、ゆくゆくはTangoでXMLもいじれるようになりそう

255 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:31:31 ]
ようやくTango1.0が出そうかなっていうときにもうD2.0だもんなぁ・・・・

256 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:47:39 ]
D2.0ってなにそれはおいしいの?
と思う俺とForeachRangeStatementが2.0だけってことはそろそろ対応お願いしますという
Walterタンの無言の意思表示なのではと思う俺と…

257 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 21:09:52 ]
もうv1はバグフィックスだけだろ。
美味しい機能《えさ》はv2にしか提供されない。

258 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 21:52:10 ]
そもそもTangoが標準になるって発言元はどこなんだぜ?

259 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 22:17:02 ]
>>258
Tango製作陣からじゃないの

260 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 23:43:00 ]
まぁTangoのほうがモノが良いなら自然に置き換わっていくんじゃね?

261 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 00:04:50 ]
どっちかが完全に上位互換ならうれしいんだけどね。
混在できたっけ?

262 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 00:23:12 ]
>>261
無理じゃなかったっけ。前に似た話出てた気がする。
もともと置換を目的に作られてるしなあ。

つか本当に>>255に同意。
なんでここで互換性ないバージョンとか出して既存ライブラリぶっちぎれるのかと。
Phobosお話になんねー、みたいな声はウォルたんに届いてないんだろうか。

263 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 00:51:04 ]
ウォルタ「いや、他にやりたいことあるし…」



264 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:17:57 ]
ウォルタ「ライブラリのためにDを止めたくないのくらいわかってくれるだろ」

265 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:29:21 ]
ウォルタ「ライブラリが追随すればいいだろwwwww更新おせーんだよwwww」

266 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:41:46 ]
ウォルタ「俺の勝手だろwwwwwwwwwwef9swccnj3」


267 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:44:39 ]
普遍条件にinvariant()って括弧がいるのはどうにかならんかなあ。
見た目が悪すぐる

268 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 08:36:17 ]
>>267
気にしすぎじゃね?
>>240あたりの理由で()付じゃないとダメだという可能性は?

269 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 11:03:23 ]
ウ「本来のあるべき姿を追い求めた結果だから仕方ないだろ」


270 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 11:19:19 ]
まぁdmd2.0のFinal Const Invariantの導入があるから整合性のために仕方がないよ。
struct{
final    {int     final_hoge = 0;}
const    {int     const_hoge = 0;}
invariant{int invariant_hoge = 0;}
}
これでinvariantだけ定数の宣言じゃなくて不変条件になると違和感が漂いすぎるし。


271 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 12:25:29 ]
unittestにあわせて、ちょっと長いけどinvarianttestとかにしてくれりゃいいのに。

272 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:05:21 ]
ちょっとD触ってみたんだけど試してみたいことがあってサンプルコード探して動かしてみようとしたら動かない、とかデフォ?
メッセージボックスに日本語出力するだけですげー時間かかって泣きそうだったわ

あとみんなは開発環境何使ってるの?
Eclipse+Descentでやってたらソースにエラーの赤線引いてあるけど見た目どこも問題ないしコンパイル通るし動作するしで微妙だった

273 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:11:49 ]
>>272 D2.0系だとサンプルコードってほとんどないんじゃないかな
今公開されてるサンプルコードって大半がD1.0時代のものだと思う(しかも今のD1.0系で動くとも限らない)
少なくとも日本語の文書においては



274 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:22:34 ]
>>272
まだまともなIDEはないから、俺は普通のテキストエディタで書いて、コマンドラインからビルドしとるよ。

275 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:24:11 ]
俺も>>274と同じくコマンドライン(というかバッチファイル作ってダブルクリック)
ポセイドンとかどうなんだろ?

276 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:47:28 ]
>>273
そーなんか
とりあえず1.0系インスコしたんだけどみんな2.0系使ってるの?
2.0系って正式リリースされてないよね?

>>274-275
そーかー
Code::BlocksとPoseidonも使ってみるよ
コード補完がないとソース書いててだるい気がするしね

277 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:00:11 ]
>>276
正式リリースなんて飾り。

278 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:09:37 ]
>>276
バージョンが0.001増えるだけで、大幅な書き直しを余儀なくさせられる言語。それがD

279 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:31:15 ]
バージョンアップしたらHello, woldさえコンパイル通らなくなったときは泣きそうになった

280 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:31:53 ]
書きまつがえた

281 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 21:54:14 ]
>>276
予約語以外までまともにコード補完できるIDEなんてまだないかと

>>279
これのことかな s/stdout/dout/g
import std.cstream;
void main() {
stdout.writefln("Hello, world!"); // 古いコード
}

歴史は繰り返す(Tango)
Cout(Hello, world!").newline;

282 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:15:35 ]
cout << "Hello, World!" << endl;
とC++みたいに出力できるのを作ったことがあるがマニピュレータ周りでモチベーションが切れて終了

283 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:24:48 ]
coutなんて飾りです



284 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:46:27 ]
doutとかs(td)outとかじゃないのか

285 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:12:09 ]
>>282
C++のストリームの記法が便利だと思ったことは一度も無いな

286 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:28:32 ]
つかC++形式の利点って何なの?
たぶんCのprintfが非型安全だから作られたんだと思うんだが、Dだと型安全な可変個引数関数が作れるわけで。

287 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:18:06 ]
型安全、拡張可能、フォーマット文字列の解析が不要ってとこか
その代償として、寄せ、桁、精度、基数等の指定が必要な場合の
記述が面倒くさすぎ

ぶっちゃけ拡張可能性という面でもstreambufが継承可能であることが
重要で、入出力演算子なんてただのオモチャだと思ってる

288 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:32:35 ]
tangoの方間違ってたらすまん
phobosのwriteflnの方がピンと来るのは俺だけ?
tangoのはどうなんだこれ
CoutとStdoutの使い分けとか必要なのか?

string hoge = "hoge", HOGE = "HOGE";
int a = 10, b = 20;
//phobos
writefln(hoge, a, "[%s%d]", HOGE, b);
//tango
Cout(hoge)(a)("[")(HOGE)(b)("]").newline;
Stdout.formatln("{}{}[{}{}]", hoge, a, HOGE, b);


289 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 05:32:21 ]
Coutキタナッ

290 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 06:20:23 ]
tx好きー。

291 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 06:44:43 ]
Code:Blocks使ってみた
入力補完させよーとするとC++かなんかの予約語を補完してくださった

Poseidon使ってみた
日本語表示もできるし予約語の補完もできるし自分で書いたメソッドの入力補完もできるっぽい ちょっと幸せ
でもエディタの挙動とか配色がキモい たぶん変更できるんだろうけどまだあんまし触ってない

292 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 07:24:56 ]
writefln で十分だな。

293 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 08:07:31 ]
printfで十分だ



294 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 08:33:23 ]
うむ
C++ ライクな入出力ストリーム表記はどうにも好きになれん

295 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 09:13:18 ]
型安全であることと、色んなもんに出力できるという点は評価できるが、
printf ライクにそれを行うことも可能なわけで。

296 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 15:42:56 ]
>>288
tangoはこれならstd::coutのほうがましだな

297 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:23:02 ]
正直、これ位の簡易な実装で俺は良いんだけどなぁ。
void main(){
  println(2,' ',3,' ',4);
}

static import std.string,std.stdio;
alias std.string.toString toString;
string toString(string x){return x;}
string toString(Object o){return o.toString;}
//構造体とか配列とか連想配列とかも同じノリで定義

void println(T...)(T x){
  foreach(v;x){
    string r = toString(v);
    std.stdio.fwrite(r.ptr,1,r.length,std.stdio.stdout);
  }
  std.stdio.putc('\n',std.stdio.stdout);
}


298 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:26:37 ]
結局型安全にした printf ライクなものが一番だよね。

299 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 19:43:44 ]
writeflnに慣れすぎて手放せなくなってる

300 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:48:15 ]
誰かD1.0を擬人化してみてくれ

301 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:52:16 ]
>>300
pc11.2ch.net/test/read.cgi/tech/1098953121/

302 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 22:08:16 ]
>>297
それでprintf("%08X", n);
とかはどうやりますか?

303 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 00:20:21 ]
>>300
1.0限定かよ








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

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

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