- 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/
- 87 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:47:15 ]
- >>66
// Otsu.new!!(argAlloc)(argCtor) class Otsu{ template New_(aA...){ static typeof(this) New_(TaC...)(TaC aC){ return new(aA) typeof(this)(aC); } } template New(aA...){ alias New_!(aA) New; } int n; this(int n){ this.n = n; } } //任意のクラスに対応できる版 template niw_(T,aA...){ T niw_(TaC...)(TaC aC){ return new(aA) T(aC); } } template niw(T, aA...){ alias niw_!(T,aA) niw; } void main(){ printf("%d\n", Otsu.New!()(3).n); printf("%d\n", niw!(Otsu)(5).n); } とかどうだろう
- 88 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:05:49 ]
- ヲルターは日曜日にDつくってんのかな
- 89 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:56:51 ]
- __traitsのallMembersやgetMemberは列挙体にも対応してるのか。
願って止まなかった機能追加キタコレ。
- 90 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:20:17 ]
- なんで 1.x にはForeachRangeStatementが追加されていないんだああああああああああああああああああああああああ
- 91 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:25:45 ]
- あわてるな これはヲルターの罠だ
- 92 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:41:47 ]
- 更新まだー
- 93 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 08:27:24 ]
- >>87
ほおお
- 94 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:06:03 ]
- >>39
sc.iniが分からないから どうやればいいか分からないですけど 前回のはプロクシの部分で不味かったみたいなので修正 sakuratan.ddo.jp/uploader/source/date45550.lzh @プロクシの有無 A@が有ならプロクシ接続先の入力 B環境変数の登録 のみ確認します
- 95 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:12:51 ]
- まぁこんなの全然必要無いですけどね…
- 96 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 16:41:26 ]
- やっとForeachRangeStatementきたか。
.. 演算子でタプルを作れたら面白そう。 void f(int[] a ...); f(0 .. 2); // == f(0, 1) auto x = [3 .. 6]; // == [3, 4, 5] あんまり使い道なさそうだけど
- 97 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:15:44 ]
- >>96
template t(T...){ alias T t; } template range(int s, int e){ static if(s<e){ alias t!(s, range!(s+1,e)) range; } else{ alias t!() range; } } import std.stdio; void main(){ writefln((int x,int y){return x+y;}(range!(0,2))); // 1 writefln([range!(3,6)]); // [3,4,5] } とかテンプレートで
- 98 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:09:18 ]
- ['a' .. 'z'] とかなら使いようもあるかも。
- 99 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:10:02 ]
- と思ったが、['a' .. 'z' + 1] か。汚いな。
- 100 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:24:32 ]
- Ruby みたいに .. と ... の使い分けがあれば
- 101 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:50:18 ]
- しかし今更 .. が末尾を含むことにされても困る
- 102 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:12:39 ]
- +1でよくねwww
- 103 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:15:32 ]
- どっちかというと使い分けするほうが俺的にはめんどい
だいたい..と...とか似すぎで読み違え頻発wwするかは知らないけど
- 104 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:28:16 ]
- いまどきキーワードで色分け出来ないエディタを使ってる人は
なかなかいないだろうから .. と ... で色を変えりゃいい そういう問題でもないか
- 105 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:24:54 ]
- 直感的に反するだろうね
- 106 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 02:28:42 ]
- === がなくなって is になったときって
間違いやすいから変わったのかな rubyで .. と ... が使われているなら 使い勝手はどうかリサーチしてみればいいんじゃね
- 107 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 06:23:46 ]
- VSPluginD アップデートしてくれないかなぁ
- 108 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 06:25:00 ]
- What's New for D 1.020
Jul 23, 2007 New/Changed Features Bugs Fixed Fixed extern (System)
- 109 名前:デフォルトの名無しさん [2007/07/25(水) 07:52:30 ]
- 久々にみてみたら、更新に古いバグジラ番号のFixが結構多い気がする
これはそろそろか・・・?
- 110 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 13:33:03 ]
- >>106
ruby 使ってるけど .. と ... でどっちが末尾含むのか毎回混乱してる.
- 111 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:22:20 ]
- >>110
.が、一つ多いのだから 含むと覚えればよい
- 112 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:10:00 ]
- ... は含まない方だよ。
- 113 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:47:02 ]
- >>110-112
おいもう結論が出たのか と思ったがDは>>111の考えでおkというだけだな
- 114 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:51:03 ]
- 余計どっちがどっちかわかんなくなるがなw
- 115 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:12:02 ]
- $[a,b) とかいう表記でもあればなあ。
- 116 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:31:57 ]
- Unicode使って含む表記を a〜b にするとか
嘘
- 117 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:42:39 ]
- 1 to 5 とか。
予約語を増やす方向には行かなさそうだけど・・・ (というか、toは変数名に多く使われてそうだから余計可能性ないか)
- 118 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:31:09 ]
- 3項演算子 in.. の追加まだー
if(n in 2..4) writefln(n);
- 119 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:39:14 ]
- between演算子か。
クエリ言語でしか見たことないけど、 assert(index in 0 .. array.length); とか書ければ便利そうだな。
- 120 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:03:29 ]
- 前から if (2 <= x < 4) とか書きたかったんだよ
- 121 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:17:05 ]
- python キタ━━━━━━(゚∀゚)━━━━━━ !!!!
- 122 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:17:54 ]
- ICFPの国際プログラミング・コンテストで日本のチーム「kuma-」が2位に
>プログラミング言語としてはRuby,C,C++,D,Java,Perlを使用した。 Dが国際プログラミングコンテストの日本人チームで使われたとか。 メジャーになった…のか?
- 123 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:35:25 ]
- 検索してみたらそれ去年の記事ジャマイカ
今年のコンテストが終わったばかりだからややこしい それはそれとして去年のkuma-はk.inaba氏含めたチームなんだから メジャーになったと言われてもちょっと納得できない罠
- 124 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:39:56 ]
- 今年はk.inaba氏とshinh氏しか使ってないに100ガバス
- 125 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:45:13 ]
- 今年はrope(C++)とHaskelあたりが主力だったのかね
Dは残念でした
- 126 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:40:49 ]
- >>118
Rangeクラス化で二項を推すぜー class Range(ValueType : Comparable){ ValueType min, max; bool opIn_r(ValueType lhs){ return (min <= value) && (value < max); } } if(n in 2..4) writefln(n);
- 127 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:15:42 ]
- phobosを使って作ったアプリを配布するときはソースを公開すべき?
phobosのライセンスはZlibライセンスに似ていますが、GPLとは 書いてないし、LGPLと解釈すれば自分で書いたソースは公開しなくても よいような気がする
- 128 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:49:20 ]
- >>127
>公開 そんなことないでしょ
- 129 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:05:22 ]
- >>126
なんか最適化を阻害しそうじゃね? (x in a .. b) が (x >= a && x < b) や (x.opCmp(a) >= 0 && x.opCmp(b) < 0) と見なされれば十分だと思う。
- 130 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:48:45 ]
- みんなデバッグどうしてるの?
flectioned 使えば落ちたときのスタックトレースを見ることはできるけど ブレークポイント設定してステップ実行とかしたいのに windbg は不安定すぎて使い物にならないんだけど・・・
- 131 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:57:13 ]
- >>130
俺はwindbgでそんなに困ったことなかった… ddbgはどう?使ったことないけど
- 132 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 18:38:41 ]
- >>130
参考にならないかもしれないけど、俺はVC++2003使ってる。 これだけで、ステップ実行、落ちたときの呼び出し履歴、リソースエディタと、 今のDに足りないものが補えてる。
- 133 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 18:49:35 ]
- >>131
thx ddbgというのもあるんだね 今度試してみるよ VS2005でうまくいけば一番いいんだけども _Dmainに関数ブレイクポイントを設定して頭からステップ実行するしかできてなくて不便 行ブレイクポイントを設定しても「このドキュメントのシンボルが読込まれていません。」と表示されて ブレークポイントが無効化されてしまう これは設定でなんとかなるのかな?
- 134 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 21:27:04 ]
- コンパイラに-opがあるのをつけてみたらどうかな
あとasm{int 3;}がブレイクポイントになる。 過去スレにあった
- 135 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 23:02:56 ]
- >>132
VS がシンボル情報を認識できているってこと? どうやるんだろう >>134 -op をやるだけではダメだった シンボル情報がないから対応するソースを表示できないって怒られた asm はちゃんとブレークポイントになったよ
- 136 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 23:12:44 ]
- _Dmain に関数ブレークポイントを設定したらうまくソースとの対応を認識してくれるので
map ファイルに出てくる他のシンボル名で関数ブレークポイントを設定したらどの関数でもうまくいった VS に map ファイルの内容をシンボル情報として使ってもらう方法をどなたかご存じないですか?
- 137 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 00:53:33 ]
- やっぱりリンカが PDB ファイルを出力してくれないと
VS ではどうしようもない気がしてきたんですが・・・ orz オブジェクトファイルの形式が違うからなあ・・・
- 138 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 03:31:24 ]
- 何度も書き込んですまん
ddbg 試してみたけど出力に多バイト文字含んでると落ちるね ddbg を実行するディレクトリ名とか・・・ ddbg は Code::Blocks をフロントエンドとして動作できるらしいからそっちに期待してみる 前スレの人は失敗に終わったようだが・・・
- 139 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 19:34:22 ]
- enum Foo : ushort
{ HAGE = 11, HIGE = 22, HUGE = 33, HOGE = 999, } template Bar(T) { const char[] Bar = T.stringof; } void main() { /* ちゃんとHAGE HIGE HUGE HOGEが表示される */ foreach (str; __traits(allMembers, Foo)) { printf("%.*s\n", str); } Foo foo; printf("%.*s\n", Foo.stringof); //"ushort"が表示される printf("%.*s\n", (Foo).stringof); //"ushort"が表示される printf("%.*s\n", foo.stringof); //"ushort"が表示される printf("%.*s\n", Bar!(Foo)); //"ushort"が表示される } どうすればFooという型から(コンパイル時評価可能な)文字列"Foo"を取得できるんだ?
- 140 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 19:59:14 ]
- コンパイラのバグくさい気がするのでテケトーに回避策を試した結果。
template Bar(T) {invariant Bar = (T[]).stringof[0..$-2]; } でOK
- 141 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 20:17:53 ]
- >>140
素敵な回避策だ。 トンクス!
- 142 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 21:45:04 ]
- ∩_
〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ <こいつ最高にアホ 彡、 |∪| / / __ ヽノ / (___) / ∩___∩ | ノ ヽ ! / ● ● | こいつも最高にアホ | ( _●_) ミ 彡、 |∪| / .\ / __ ヽノ / \ ...\ (___) / .│ ..│ / ヽ l..lUUU .U
- 143 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 23:02:35 ]
- うけけめけ
- 144 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 15:24:36 ]
- ばーじょんあっぷまだー?
- 145 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:26:52 ]
- >>129
考えてみたけど、インライン化やメンバをfinalにする、Rangeオブジェクトをスタックに置く等が行われれば、 案外いい感じに最適化されるんじゃなかろーかという気がした。 あとRangeクラスはあると実際便利なので、標準で入ってて欲しいなーという願望もあったり。 パフォーマンスを気にしてクラス作るのを敬遠しちゃって、 コードの可読性とかで大きく損をしてるケースを沢山見るのよねぇ。かなり歯がゆい気分になる。 D言語には是非とも、クラス化のリスクを徹底的に減らすような最適化を推進してもらいたいデス。 ところでForeachRangeStatementの箇所がまだ翻訳されてないんで自信無いけど、 Rangeとして書けるのは整数だけ? いくつかの演算子が適用できればオブジェクトでも行けるようにも読める気がするけど。
- 146 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:30:25 ]
- >>145
イテレータにも使えるとWalter氏が言ってたような…
- 147 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:45:36 ]
- >>145
ForeachRangeStatementは今のところスカラーな数値(整数/実数/虚数)だけ。 ただ、構造体/クラスに対応する考えはあるみたい。 news://news.digitalmars.com:119/f817uv$aqd$2@digitalmars.com
- 148 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 22:10:51 ]
- void main() {
int[5] a; foreach(p; &a[0] .. &a[$-1]) writefln(p); } ポインタ型にも適用できるけど、型の大きさにかかわらず1刻みになるようだな。
- 149 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 14:53:19 ]
- Cのdmcでdll作りたいんだけど、どこで聞けばいい?
- 150 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 15:01:13 ]
- DMCスレ落ちたんか
- 151 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 15:14:15 ]
- クラウザーさん
- 152 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:01:06 ]
- アップデートまだー?
- 153 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:57:55 ]
- 関数が複数の値を返せたらいいのになあ・・・
- 154 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 17:04:45 ]
- Dにインデクサないの?
- 155 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:25:18 ]
- opIndex?
- 156 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 22:47:10 ]
- だよね
- 157 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 22:48:31 ]
- >>153
Tupleを返せたらいいんだけどな なんでできないんだ
- 158 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 01:21:34 ]
- Tupleはコンパイルタイムにしか存在しないデータ型だから無理じゃね?
- 159 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 03:43:07 ]
- Dには集合型ないの?
- 160 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:12:09 ]
- >>158
タプル自体の構成を変更したりはできないけど、 タプルの各要素を実行時に変更するのはOK。 ので、 int n; char[] str; Tuple!(int,char[]) retTupleFunc(){ return Tuple!(3,"hoge".dup); } Tuple!(n,str) = retTupleFunc(); というような感じのが、もっとマシな構文で実現される整合性の余地はある。
- 161 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:19:57 ]
- 早くタプルリテラルを追加してほしい。
- 162 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:24:44 ]
- $(int, char[]) だの @(int, char[]) だの、
まだ使ってない記号を導入するつもりはないんだろうかね。
- 163 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:42:07 ]
- それより、変数宣言以外での、式で使うカンマ構文をナシにして、
a,b,c = f(); で済むようにすりゃ簡潔でいいと思う。 f(x,y,z)とかf((x,y),z)とかやるときも構文の不整合起こさないで済みそうだし。
- 164 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:01:11 ]
- >>163
それ、不整合を起こさないためには必須だけど代わりの構文が無いと困る。
- 165 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:07:02 ]
- >>163
Luaでそんなことやってたけど、 便利だわな
- 166 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:40:38 ]
- カンマ演算子もタプルを生成するようにして、タプルをスカラーで評価したら一番最後の値が返されるようにするとか。
- 167 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:18:03 ]
- 今のところはこういうやつでお茶を濁すしかないのかね。
これは C++ だが。 www7b.biglobe.ne.jp/~robe/pf/pf011.html
- 168 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:54:29 ]
- テンプレート型にstaticな演算子が適用できないのは仕様?
struct S { static void opAssign(int a) { writefln(a); } } struct ST(T) { static void opAssign(int a) { writefln(a); } } void main() { S = 1; // ok ST!(int) = 1; // error ST!(int).opAssign(1); // ok }
- 169 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:18:08 ]
- alias ST!(int) STI;
STI = 1; とすれば通るけどね
- 170 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:42:19 ]
- 前にもそんな感じのテンプレートの挙動があったな。
まあ仕様じゃなくてバグだろう。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:13:41 ]
- >>165
むちゃくちゃ好きだったLuaとSquirrelだけど D言語にはまった以降いらなくなってしまった・・・
- 172 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:16:16 ]
- 和訳の中の人はなんであんなにマメなんだ?
- 173 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 07:11:48 ]
- まあ、なんにしろありがたいことは確かだ。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 11:56:59 ]
- FAQかもしれませんがGTK+って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限定かよ
|

|