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)
89 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 13:43:07 ] >>86 switchの条件に文字列指定は前から出来るけど・・・ >C/C++と違い、 文字列もswitch文で使用できます。 って書いてるし。
90 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 13:47:28 ] >>89 >>86 はそういう意味じゃないだろ >>83 の「switchのcaseはconstかinvariantな整数型変数なら定数じゃなくともOK」に対して,「const/invariantな文字列をcase文に使えたら面白い」という話だろ
91 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:21:51 ] まあ多分こっちの意図と違う事言ってるだろうなと思いつつ勢いに任せて書いた。すまぬ。
92 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 07:31:21 ] switch caseのconst変数について。 スタックにあるconstな変数は受け付けますが、 ヒープにある可能性のあるものは全部NGかなという感じです。 関数内(ネスト関数の外側関数含む)でconstな変数は受け付けますが、 クラスフィールド上でconstなものは受け付けません。
93 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 14:02:04 ] D面白そうだからやってみたいんだけどオススメの本あったら教えて 英語か日本語の本で
94 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 14:13:24 ] 他の言語知ってるなら言語仕様のページ見るだけで十分だと思う。
95 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 14:19:32 ] >>93 日本語の本で一番新しいのは『D言語パーフェクトガイド』。ただし古くて何の役にも立たない。 英語で最近出たのは『Learn to Tango with D』。まだ読んでないから内容の是非はわからない。
96 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 14:21:23 ] D はリアルタイムで言語が大きく変わるから ついていくには本なんて役に立たない
97 名前:93 mailto:sage [2008/04/27(日) 14:24:10 ] learn to tango->ダンスの本かと思ってスキップしてた amazonで買った
98 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:08:48 ] Dの本って出版された時点で時代遅れになってそうだな。
99 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:10:25 ] D 1.0 で止まっていいのなら何とかなりそうではあるが・・・ D 2.0 に興味があるなら本は無駄だと言わざるを得ない
100 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:30:26 ] opDotって委譲しやすくするって認識でおk?
101 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:31:24 ] >>100 No. 単一の型にしかforwardできないから何の役に立つのかさっぱり分からない。
102 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:38:18 ] o.m が o.opDot!("m") にでもなれば、いろいろ面白そうなのにな。
103 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:24:46 ] >>102 なんにつかえるかわからんけど、おもしろそう
104 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:26:07 ] >>102 関数の引数のstaticが来たらopDot("m")でいい気ガス。
105 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 18:05:18 ] >>103 ActiveXのレイトバンディングとかに使えるかも。
106 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 03:29:47 ] クラス関数を列挙して、それに対応する配列の擬似プロパティ版関数を作るテンプレートってありますか? 下記のような…… class Foo { void fun(int n); ... } ↓ void fun(Foo[] foos, int n) { foreach(foo; foos) fun(n); } ...
107 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:42:57 ] 作れないことはないと思うけど、すごく汚いものになる気がする
108 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:25:13 ] __traitsのallMembersやderivedMembersでメンバの名前を得られるから、 それらを関数かどうか判定して、それにあった関数定義を生成して…、 という形になるんじゃないかな。
109 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:29:22 ] >New/Changed Features >Hidden methods now get a compile time warning rather than a runtime one. これうざす。 親クラスの関数をFinalにして回避してるんだけど そもそもおれのクラスの設計がいけてないってことなのかなぁ・・・
110 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:06:04 ] >>109 警告メッセージに「オーバーライドしてんのにoverrideついてないよ」 って書いてあるから、素直にoverrideつけりゃいいんじゃなかろうか。
111 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 06:18:29 ] >>110 このケースのことじゃなかろうか class A { int foo(int a) } class B : A { int foo(int a,int b); } 名前が一緒で引数の取り方が違う場合
112 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:04:35 ] >>111 勘違いしてたわ。 なるほどオーバーロードの関係ね。 www.kmonos.net/alang/d/2.0/function.html で、 オーバーロードの解決時に基底クラスの関数を含めるにはalias使えとあるから、 class A{ int f(){ return 3; } } class B:A{ alias A.f f; int f(int x){ return x*x;} } たぶんこんな感じでOK
113 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:44:13 ] >>112 わっ本当だ! ありがとうございます! aliasの役割っておおいですね・・・
114 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:02:51 ] 使う場面は様々だけどそのスコープの特定の名前セットに 名前を追加するという役割は同じだよ
115 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:53:51 ] dHell+DMD1.0でゲーム作るの楽しい!!! /+D言語でハンガリアン記法どうしようか・・・うーむ+/
116 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 02:28:55 ] >>115 dHellってdHell2じゃなくて? 無印の方はSDLとほぼ同等だと思ってたが システムハンガリアンだったらダメ絶対 アプリケーションハンガリアンだったら推奨 ameblo.jp/argv/entry-10031517216.html
117 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 03:01:33 ] アプリケーションハンガリアンもtypedefがあるからあまり必要無いんじゃない?
118 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 11:48:18 ] >>117 え?
119 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:21:11 ] >>118 Cとかと違って,違う型として扱ってくれるからじゃない? 全て上手く行くかどうか分からないけども
120 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:57:22 ] データの目的を変数名に入れなくても、typedefで型のほうを目的固有にできるって話じゃね。 ttp://www.radiumsoftware.com/hungarian_notation.html この例なんかは、安全な文字列型と危険な文字列型を用意すれば解決するようにも思える。
121 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:29:48 ] >>120 のリンク先では「(C++で)いちいちウィンドウ座標とレイアウト座標を 別のクラスにするのは大仰すぎて非現実的だからアプリハンガリアンがいいよね」 と言いたいようだけど,ただ視覚に訴えかけるだけじゃなくて それぞれを暗黙的に変換されないようにするべきだと思う. typedefがあるD言語では仕組みは簡単だし 実は同じ型だから変換のコストは安いからもってこい typedef Point LayoutPoint; typedef Point WindowPoint; とか typedef /*unsafe*/string safeString; とか. D言語ではアプリハンガリアンでさえいらず型システムに任せられる気がしてきた
122 名前:117 mailto:sage [2008/04/30(水) 17:31:07 ] >>118 すまん言葉足らずだった >>119-120 が言っている通り なるべくならコンパイルエラーで検出できるようにした方が間違いが無いだろうし オーバーロードが出来るから処理も分けやすい 全てのケースで置き換えられるとは言わないけど 大体はtypedefが使えると思う
123 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:40:46 ] 文字コード別に文字列型を定義してしまっても良い気がする。
124 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:29:26 ] >>123 こんなのはしてみたけど typedef char mbchar; alias invariant(mbchar)[] mbstring; 文字列同士の連結に ~ じゃなくて連結関数を使わないといけないのがネックだった
125 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:42:24 ] ただの配列だから~演算子で連結できるだろ
126 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:44:23 ] >>124 charは既にUTF8って意味を持ってるから、ubyteを基底にするべきだろうね。
127 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:04:38 ] 配列でptrを使わずに&演算子で出てくるのは配列の最初の要素へのポインタと配列の長さを格納した8バイトのデータ?
128 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:21:27 ] >>125 あ,ゼロ終端の配列にするからいけないのか thx >>126 間違えた.元々 ubyte にしてました
129 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:25:35 ] >>127 &演算子が返すのは、配列の参照が保持されている場所のアドレスか、 配列の先頭の要素のアドレス。動的か静的かで挙動が異なる。
130 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:15:10 ] >>116 すまん、dHell2の方だった アプリケーションハンガリアンってあるのか・・・ システムハンガリアンしか知らなかった・・・thx!!
131 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:59:30 ] >>114 なるほど
132 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:43:31 ] >>122 なるほど、得心しました。 単純にアプリケーションハンガリアンはレビュアーの為でもあるんでそっちまで否定されてるのかと思い込んでました。
133 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 07:09:09 ] >>124 文字列型はinvariant(char)[]でもう確定なのかな せめて一段aliasがあればな… ていうかWindowsでUTF8が(ry
134 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 10:37:10 ] ところで、charがUTF-8の文字という意味を持っているなら、 なんで、toMBSzとかはchar*を返すんだ? ubyte*を返すべきなんじゃないか?
135 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:11:56 ] まったくその通りだと思います
136 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:05:51 ] D はじめますた。 winxp で eclipse + descent + dmd 1.028 + dsss 最新版 + ddbg 最新版で なんとかコーディング → ビルド → デバッガが走るという、IDE の最低限要素を実現出来たばっかり。 で、 import std.stdio; void main() { printf("test"); printf("hello, D"); // この行にブレークポイント } このコードでブレークポイントの部分で止まったときに eclipse のコンソールに、標準出力に出力されたであろう test って文字列が出てこない。 出てこさせる方法は無いですか?
137 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:22:47 ] fflush(stdout);
138 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:26:06 ] >>136-137 std.stdio.flushall(); てのなかったっけ
139 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:32:06 ] >137 >138 出てこないみたいです。
140 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:49:44 ] あーーーわかりますた。 標準出力用のコンソールが、eclipse の外のウィンドウで出てたです。 気がつかなかったー。
141 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:36:59 ] ワラタ
142 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:25:08 ] >>136 その実現する過程をぜひ教えてほしい・・・
143 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:28:47 ] eclipse は元から入ってました。 で、descent を入れました。 eclipsewiki.net/eclipse/?D%B8%C0%B8%EC%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3 コンパイラが別途必要なのを気がつかなくて入れてなかったので、 あとから dmd と dmc をいれました。ふつうはルートに展開するらしいけど、ルートが嫌だったので、c:\d に展開。 ->c:\d\dmd ->c:\d\dm dsss を入れます。 ->c:\d\dsss ddbg を入れます。 ->c:\d\ddbg パスを設定します。 DMD_HOME=c:\d PATH=〜〜〜〜;%DMD_HOME%\dmd\bin;%DMD_HOME%\dm\bin;%DMD_HOME%\dsss\bin;%DMD_HOME%ddbg\bin; コンパイラの設定。 eclipse で ウィンドウ>設定 を開いて、ツリーから、D -> Installed Compilers を選択 追加を押して、Compiler home directory に、dmd を展開したディレクトリ(c:\d\dmd) を設定 すると、他の情報もなんだか良い感じに設定されているので、おもむろに OK デバッガの設定 www.dsource.org/projects/descent/wiki/DebuggingPrograms
144 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:38:59 ] ビルダーの設定 D のプロジェクトのプロパティを開いて、ツリーから ビルダーを選択 新規ボタンを押して、プログラムを選択して、OK メインタブーーーーーーーーーーーー ロケーション:c:\d\dsss\bin\dsss.exe 作業ディレクトリ:${project_loc} 引数: build 更新タブーーーーーーーーー 完了時にリソースを更新をチェック 選択されたりソースを含むプロジェクトを選択 再帰的にサブフォルダーを組み込むをチェック おもむろに OK dsss のコンフィグ D のプロジェクトのディレクトリに、dsss.conf を作成。 [main.d] // ← main() を含むソースファイル buildflags=-g -Isrc\\ // ← コンパイラに渡すオプション だいたい、こんなかんじです。
145 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:44:39 ] 乙です
146 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 06:26:21 ] >>143-144 うわ、ありがとう!!
147 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:23:04 ] Descent ver あがってるね。
148 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:33:18 ] 型タプルの各型の文字列表現が欲しいんだが可能でしたっけ?
149 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 20:10:02 ] stringof プロパティを使えば出来るかと ttp://www.kmonos.net/alang/d/2.0/property.html 動作例 これでいいのかな? ttp://codepad.org/7jPFcZXj
150 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:44:48 ] >>148 じゃないけど…おれもちょっとそれは悩んでたことがある。結局あきらめたけど。 >>149 ttp://codepad.org/JLIVZDYF こんな感じに、モジュール名まで考えたときに stringof だと都合が悪いんだよね… mangleof と demangle でいけないかと思ったけど、これもなんかうまくいかないし… どうすればいいんだろう?
151 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:24:11 ] 1.0から0.2を5回引いても0にならないのはどうにかならないんでしょうか・・・。
152 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:37:42 ] 面倒でも整数で
153 名前:149 mailto:sage [2008/05/02(金) 23:40:14 ] >>150 うーん、確かに半端だ… .NET Framework の Type.Fullname プロパティ相当のものが 現在のD言語には用意されていないようなのが不味いのかな。
154 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:19:06 ] >>151 浮動小数点数がどういうものかを勉強しろ。
155 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:33:29 ] Dの浮動小数点数ってずいぶん貧弱なんですね
156 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:37:58 ] >>148 stringof はタプルに対しても使える。 モジュール名は実行時でも良いなら typeid で取れるね。
157 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 01:16:37 ] >>155 Dの・・・?
158 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 01:24:55 ] あちこちで春ですよ
159 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 01:36:59 ] さすがに>>155 には失笑した
160 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 01:48:20 ] >>155 はとりあえず基本情報処理技術者の資格を取ってきなさい
161 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 01:51:09 ] >>155 今まで使ってきた言語を示すべし
162 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:25:19 ] PythonのDecimalみたいなのがあれば良いんじゃない
163 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:51:49 ] >>162 Decimalはライブラリ(というかモジュール?)だから組み込みどうしではPythonも同じじゃない? 標準で入れるべき,となるとまた別な問題な気がするけど,dsourceとかにあるのかなぁ
164 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 10:30:41 ] Dの10進浮動小数点数ライブラリはまだ見たことはないな まあ、欲しい奴が移植すればいいだろう
165 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:22:40 ] >>155 はMatlabとかMathematicaとか使ってたんだろ。
166 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:37:18 ] C#は1.0から128bitDecimal型標準装備だな
167 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 09:46:12 ] >>143-144 に刺激されて、Eclipse&Dscentいれてみたが、 VSのMakeプロジェクト、asm{ int 3;} に慣れすぎていた自分がいた・・・
168 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:02:20 ] 仕様で見つけられないので質問です。(1.0 の仕様しか見てませんけど) クラスメンバーのアクセス制限属性(private とか protected とか)は、 記述したらそのアクセス制限が適用されるのはわかるのですが 記述しなかった場合、どのアクセス制限が適用されるのかご存じのかた居ませんか? とりあえず試した限りでは public っぽいのですが・・・。
169 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:23:20 ] www.kmonos.net/alang/d/2.0/struct.html デフォルト publicだよ
170 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:25:48 ] あ、ごめん2.0のURL出しちゃったけど1.0系でも同じだよ
171 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:43:51 ] ・・・これで判れというのもなかなかシビアなものがある。>DigitalMars どもありがとうございました〜
172 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 08:12:45 ] >>これで判れ Dは初心者向けじゃなくて今までの言語との比較が基本だから仕方ない気もしてたり
173 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:46:47 ] poseidonがなんか少し新しくなってる
174 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:35:34 ] >>171 ttp://rayerd.ddo.jp/pukiwiki/ingwiki/index.php?C%2FC%2B%2B%A4%CB%C8%E8%A4%EC%A4%BF%BF%CD%A4%CED%B8%C0%B8%EC#ba92f204 比較したいならこっちをどうぞ
175 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:38:46 ] [poseidon diff] www.dsource.org/projects/poseidon/wiki/WikiStart?action=diff&version=31 [descent diff] www.dsource.org/projects/descent/wiki/WikiStart?action=diff&version=65
176 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 04:51:01 ] >>149 ありがとうございました。 おかげさまで>106もどきができたのですが、 長いのでここに貼るのはどうかなという感じのものです。 codepadはたぶんコンパイラのバージョンの違いで通りませんでした。
177 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 20:37:53 ] dflのListViewってハンドル取れないようになってないかい?
178 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 09:39:00 ] ハンドルって何のこと
179 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 12:09:55 ] キャンドル♪ハンドル♪ペダルにサドルに自♪転♪車♪漕いどる♪
180 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 17:44:31 ] Windows的にいえば、Windowハンドルじゃないかい? しかし、懐かしいもんひっぱってきたねぇ。>>自転車 意味的にはハンドルはどっちも同じだったと思うけど。
181 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:50:38 ] デバイスコンテキストハンドル
182 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:10:34 ] 久しぶりにdflのサイト覗いてみたけど、3月中旬にD2対応してたんだね。 そろそろD2に移行しようかな ttp://wiki.dprogramming.com/Dfl/Snapshots
183 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:04:49 ] >>182 あれ?どうやったらD2で使えるんですか?
184 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:26:32 ] ttp://wiki.dprogramming.com/Dfl/D2-0 まだ対応してないとも書いてるけど
185 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:01:43 ] うちの環境がおかしいだけでできるみたいです
186 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:32:15 ] インストールして普通に動いたよ@v2.013 >>184 スナップショットのほうで対応してるってことかと。
187 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:09:11 ] なんでpathが通ってないのにdfl.exeは c:\d2\dmd\bin\dmd.exeじゃなくて c:\d\dmd\bin\dmd.exeの方を使おうとしてくれるのだろうか orz c:\d を c:\_d に改名したら普通に動くのに・・・ どこかに設定が残っているのでしょう?
188 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:15:56 ] 多分わかった 両方のバージョンを入れていて競合する人はdfl.exeを使う前に dfl -i を実行してやればいいみたいだ
189 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:29:43 ] >>179 会いに来て荒♪井♪注♪
190 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 07:28:43 ] DFLでつかえるコントロール一覧のスクリーンショットってなかったっけ
191 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 16:24:34 ] ttp://www.dprogramming.com/dflscreenshots.php
192 名前:デフォルトの名無しさん [2008/05/09(金) 22:01:09 ] dmd1.029 class Test { int[string] x; void a(Test* t){assert("hello" in t.x);} Test* b(){return &this;} } void main() { Test t = new Test(); t.x["hello"]=1; t.a(t.b); // Error: Access Violation } ナゼ?
193 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:48:28 ] Test#b はローカル変数のアドレスを返してるようなもんだと思うんだけど
194 名前:192 [2008/05/10(土) 01:38:42 ] >>193 確かにTest#bを Test* b() { static Test c; c = this; return &c; } にすると解決 ただ、なんとなくいまいち泣希ガス 意図としては関数bには&tを返してほしいんだが、そういうのはワガママ?
195 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 01:49:12 ] そんなの無理だろ。 オブジェクトを値渡ししてるのに
196 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 01:54:47 ] もともと参照だしそれって意味あるの?
197 名前:192 [2008/05/10(土) 02:18:39 ] ああ、そういえばそうか。 根本的なことわすれてるなおれ。 別方法で打開しました。おさわがせ。
198 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 02:55:09 ] class Test { int[string] x; void a(Test t){assert("hello" in t.x);} Test b(){return this;} } void main() { Test t = new Test(); t.x["hello"]=1; t.a(t.b); } これじゃ駄目だったの?
199 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 03:51:49 ] C++使ってたから俺も混乱した
200 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:35:18 ] Dも、C#みたいに型省略宣言入れてくれよ。
201 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:36:25 ] autoで我慢しなせぇ。
202 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:11:02 ] >>200 どんなの?
203 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:19:29 ] 匿名型のことかな
204 名前:202 mailto:sage [2008/05/10(土) 22:45:05 ] これか? void main(){ auto x = new class {int a; string b;}; x.a = 1; x.b = "hoge"; }
205 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:56:52 ] auto x = new class {int a; string b;}; auto y = new class {int a; string b;}; Dだとxとyが同じ型にならないのがだめだな。
206 名前:202 mailto:sage [2008/05/10(土) 22:59:05 ] まあそういう仕様だわなあ 同じ型がいい理由ってどんなんがあるの?
207 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:00:45 ] ん・・・あれ? 行頭のスペースが残ってる for(;;){ writefln(); }
208 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:05:14 ] >>206 配列に突っ込みたいときとか
209 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:31:08 ] てs
210 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 05:34:08 ] だろ?
211 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 08:00:40 ] うーんLINQみたいな応用があれば 匿名型は有意義なんだろうけど今のままならあんまりかなあ 匿名型のTupleを可変長テンプレートの引数に与えるとかで代用できないのか
212 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:00:31 ] >>191 ありがとう〜
213 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:33:31 ] 連想配列asにキーkeyのものがあるかどうかを調べて、 なければ作成する auto p= key in as; if( p is null ) { as[key]= A() p= key in as; } っていうのがめんどくさいので、過去スレ参考にして以下みたいなのを つくってみた template key_type(T) { static if(is(T A:U[A],U)) { alias A key_type;} } template return_type(T) { static if(is(T A:U[A],U)) { alias U return_type; } } return_type!(T)* has(T)( ref T as, key_type!(T) key) { auto p= key in as; if( p !is null ) return p; static if( is(return_type!(T):Object) ) { as[key]= new return_type!(T)(); } else { as[key]= return_type!(T)(); } return key in as; }
214 名前:213 mailto:sage [2008/05/12(月) 20:41:00 ] auto p= has( as, key) p.MEMBER= VALUE; って感じです。 こうやったほうがいいぜ、とかご意見ありましたらm(_ _)m
215 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:42:16 ] V* has(K, V)( ref V[k] as, K key) とかじゃあかんの。
216 名前:213 mailto:sage [2008/05/12(月) 23:46:32 ] がーーーーん
217 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 23:54:09 ] 配列は参照型だからrefである必要もないな。
218 名前:213 mailto:sage [2008/05/13(火) 08:30:21 ] >>215 ,217 さらしてみるもんですね・・ ありがとうございます
219 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:33:38 ] DBIに private import tango.stdc.stringz : toDString = fromUtf8z, toCString = toUtf8z; というコードがあるんですが、 これってどう修正すれば動くんでしょう?
220 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:56:43 ] こうかな? private import tango.stdc.stringz : toDString = fromStringz, toCString = toStringz; 参考: dsource.org/projects/tango/docs/current/tango.stdc.stringz.html www.kmonos.net/alang/d/2.0/module.html
221 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:30:45 ] >>220 ありがとうございます。
222 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:42:04 ] dでSqliteを使おうと思っています。 www.digitalmars.com/download/freecompiler.html でImplibを使ってLibファイルを作り、 pragma (lib, "sqlite3.lib"); extern (C): int sqlite3_open (char* filename, sqlite3** database); int sqlite3_close(sqlite3* database); として関数を使ってみたんですが、Undefined Symbolと出てしまいます。 何か足りないものか間違ってる所があるんでしょうか?
223 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:17:29 ] sqlite3
224 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:06:23 ] 小文字を大文字にするテンプレートを書いてみたんだけど ttp://codepad.org/Ola6Mjkq こう書くより、 ttp://codepad.org/kEF07sfw と、末尾再帰の形にしたほうがいいのかな? コンパイル時に末尾最適化がかかるとは思ってないけども、 文字列が長くなったときに影響あるかな…と思いまして。
225 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:09:58 ] >>224 関数にすれば良くね?
226 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:29:12 ] >>225 と同じく関数でいい気がする。 適当にコンパイル時に実行できるようにしてみた。 string toUpper(string src){ if(src.length == 0)return ""; foreach(i,c;src){ if('a'<=c && c<='z'){ string result = src[0..i]; foreach(d;src[i..$]) result ~= ('a'<=d&&d<='z' ? d-'a'+'A' : d); return result; } } return src; } void main(){ const static x = toUpper(null); printf("%.*s\n",x); }
227 名前:224 mailto:sage [2008/05/13(火) 23:48:25 ] >>224 >>225 コンパイル時に実行できる関数がうまく作れなかったのでテンプレートにしたんだけど 関数で書けるのなら関数のほうがいいですね。参考になりました。ありがとう。
228 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 00:20:18 ] >222 ポエニーのソースを見ると良いよ。sqlite3 をつかってたはず
229 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 04:01:35 ] >>228 ありがとうございす。 ソースの中にあった、dllとLibファイルを入れ替えたら動きました・・・。 Libファイルの作り方が悪かったようです。
230 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 07:12:25 ] ひさしぶりにDさわったら、ずいぶんましになってんのな 前はコンパイラがすっこんすっこん落ちてた
231 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 10:11:13 ] void foo() { void bar(...) { } } これをdmd_2.012-030708_i386.debでコンパイルするとSegmentation faultが出る
232 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 14:22:02 ] 可変引数(?)の...をその関数内の...を受ける関数に渡す場合ってどうすればいいんでしょうか?
233 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:00:42 ] タプルでいいならこれでおkかな? void foo(T...)(T a){ void bar(U...)(U b){writefln(b);} bar(a); }
234 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 19:58:22 ] >>232 Cスタイルならva_listをとる関数を別途用意するしかない。 Dスタイルなら配列で受けて配列のまま渡せばいい。 可変長引数タプルなら>>233 。これが汎用性は一番高い。
235 名前:デフォルトの名無しさん [2008/05/14(水) 23:04:12 ] dmd1.029+ dsource.orgのWindowsAPI bindings+ わなDさんから頂いたcoffimplibでPlatformSDKから作ったlib でWM_IME_CHARがこないんだ、がみんなどうよ?
236 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 13:13:07 ] Error: no property 'hogefunc' for type 'hoge.Hoge' これはどういう意味なんでしょう。 関数は定義されてるはずなんですが。
237 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 13:14:28 ] 思いっきり勘違いでした。 定義されてない関数でした。
238 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 16:21:34 ] >>235 それをパッと実験できる準備ができてる人はあんまりいないと思う
239 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 01:32:39 ] 文字列の連想配列って char[char[]][] じゃエラーになるんですが、どういう風に宣言すればいいんでしょう?
240 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 01:42:54 ] string[string]
241 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 03:03:20 ] char[][char[]]
242 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 16:07:18 ] >>239 それじゃ文字の連想配列の配列じゃね
243 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:47:04 ] dでリフレクションな事ってできませんかね。 アクション呼ぶのにSwtich文つらつら書いてるのがあれなんですが。
244 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:43:46 ] 1.reflection.dを使う 2.BOFの発表であったいずれ来るかもしれないライブラリを待つ 3.自分で作る のどれかかな
245 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:44:20 ] >>241 >>242 動きました。 ありがとうございました。
246 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:56:07 ] と思ったら動いてませんでした。 ["hoge":"omg","test":"sod"]; こういう配列を受け入れる変数はどういう宣言が必要なんでしょうか。
247 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:59:31 ] string[string] aa = ["hoge"[]:"omg"[],"test":"sod"];
248 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:23:02 ] あぁ、すごい勘違いですた。 ~=じゃなくてそのまま=で入れられるんですた。
249 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:19:03 ] Version D 2.014 May 16, 2008 New/Changed Features Added -man switch to browse manual. Added -lib switch to generate library files. Also causes multiple object files to be generated from one source module. When generating an executable file, only one object file is now generated containing all the modules that were compiled, rather than one object file per module. Rewrote the rdmd utility to properly track dependencies and command-line compiler options (currently only working under Linux). Changed the Phobos makefile linux.mak to take advantage of the new -lib feature. Improved full build speed by 3x. std.algorithm: Changed the map() function so that it deduces the return type. Also map can be now curried. std.contracts: Added file and line information to enforce. Added errnoEnforce that formats the error message according to errno. Added corresponding ErrnoException class. std.conv: Made std.to curryable. Changed std.to to throw exception when object-to-object cast fails. Eliminated some superfluous printfs.
250 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:19:48 ] std.encoding: Added new functions encodedLength(dchar) and encode(dchar, ref E[]) std.encoding: Got rid of types Utf8, Utf16, Utf32, Ascii, Latin1, Windows1252. Introduced types AsciiChar, AsciiString, Latin1Char, Latin1String, Windows1252Char, Windows1252String. std.encoding: For now commented out std.encoding.to. std.file: Changed Boolean function signatures (e.g. exists) to return bool instead of int. Got rid of some gotos. Added the readText, lastModified, mkdirRecurse, and rmdirRecurse functions. std.functional: Improved compose so it accepts an unbounded number of functions. Added the pipe function. std.getopt: Added new option stopOnFirstNonOption. Also automatically expand dubious option groups with embedded spaces in them (useful for shebang scripts) std.math: improved integral powers std.md5: Improved signature of sum so it takes multiple arrays. Added getDigestString.
251 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:20:09 ] std.path: changed signatures of test functions from bool to int. Implemented rel2abs for Windows. Improved join so that it accepts multiple paths. Got rid of some gotos with the help of scope statements. std.process: added getenv and setenv. Improved system() so it returns the exit code correctly on Linux. std.random: added the dice function - a handy (possibly biased) dice. std.typecons: Finalized and documented the stupendous Rebindable template. std.utf: added the codeLength function. Got rid of some gotos. Bugs Fixed std.format: Fixed unlisted bug in raw write for arrays std.getopt: Fixed unlisted bug in dealing with one-letter options with bundling disabled
252 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:22:26 ] Bugs Fixed std.format: Fixed unlisted bug in raw write for arrays std.getopt: Fixed unlisted bug in dealing with one-letter options with bundling disabled Bugzilla 2014: fopen fails on large files. Bugzilla 2031: Documentation: template value parameters Bugzilla 2032: Documentation for creating a class on the stack is unintuitive Bugzilla 2037: Article on hijacking is outdated Bugzilla 2038: Remove hello2.html from samples directory Bugzilla 2039: -ignore switch is missing from compiler docs Bugzilla 2054: Const system broken on struct assignment. Bugzilla 2055: (ICE) Compiler crash on struct initializer with too many elements Bugzilla 2056: Const system does not allow certain safe casts/conversions involving deep composite types Bugzilla 2058: Describe hidden value passed to class member functions Bugzilla 2063: std.xml access violation for nested, closed tags Bugzilla 2065: Return value of std.file.exists() is inverted.
253 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:23:12 ] Bugzilla 2067: call from anonymous class makes access violation. Bugzilla 2071: spec doesn't mention pointer arithmetic with two pointer operands Bugzilla 2072: std.typecons documentation anomaly. Bugzilla 2074: Variant arithmetic operations fail. For now the fix is to comment out all right-hand side operators. Suggestions for a better fix are welcome. Bugzilla 2075: Spec does not specify how array literals are stored. Bugzilla 2084: operator ?: does not compute the tightest type Bugzilla 2086: Describe relationship between string and char[] more explicitly Bugzilla 2089: Issues with CTFE and tuple indexes Bugzilla 2090: Cannot alias a tuple member which is a template instance Bugzilla 2100: Assertion failure: '0' on line 4842 in file 'expression.c' Bugzilla 2109: asm {lea EAX, [0*0+EAX]; } rejected. -EOF-
254 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:40:48 ] 1) ユーティリティとしてのdmdの使い勝手の向上 2) phobosの改善 3) バグ修正 といったところか
255 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:27:42 ] 関数ごとに.objを分けるみたいな機能で、リンク速度が向上して、サイズは小さくなるのかな。
256 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:22:30 ] 最近、64bitのLinux環境でD言語を使い始めたんですけど、 gdcって、もう開発停止してるんですか? メンテもされてないコンパイラを使うのは少し気が引けます。
257 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:27:20 ] ペース遅いけど今も開発されてるよ。
258 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:29:12 ] 開発は停止してないようだがリリース間隔はお世辞にも早いとはいえない
259 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:34:46 ] 早くコミット権限を貰いに行って最新版DMDに対応させる作業にかかるんだ!
260 名前:256 mailto:sage [2008/05/17(土) 23:45:48 ] >>257 ,258 レスありがとうございます。 sourceforge見てもわからなかったので、困ってました。 とりあえずgdcを使っていこうと思います。
261 名前:デフォルトの名無しさん [2008/05/17(土) 23:47:03 ] win32版dmd1.028で連想配列の動的配列のlengthを設定しようとすると 固まるんだけど、誰か分かりませんか? こんなの int main() { int[int][] a; a.length = 5; return 0; }
262 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 00:25:43 ] >>261 ほんとだ。これでも固まる(実行時)。 void main() { typedef int[int] intint; intint[] a = new intint[5]; }
263 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 00:47:15 ] シャアw
264 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 04:04:55 ] >>261 それはずっと前からバージョン関係なく止まる。 効率良くはないが、俺はループさせてnullで埋めたりしてた。
265 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 08:36:52 ] 伝説のIDEか ttp://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.ide&artnum=176 Zeus自体は有料なんだけどね ttp://www.zeusedit.com/index.html
266 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 16:45:27 ] std.bindいじってたらdmd落ちた・・・ どこが原因かわかんね
267 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 17:30:22 ] 2.014 std.xmlがうまくうごかなくなった・・ onStartTag内で、attrがからっぽ
268 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:50:56 ] 質問なんですが、一度設定したらそれ以降不変なメンバの初期化をコンストラクタに 与えられた値を使って行いたいです。D言語だとinvariantなメンバの初期化はどうやって 行うのでしょうか。
269 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 04:56:06 ] 以下のようにコンストラクタ内で初期化すればいいんじゃないの? class Foo { invariant int bar_; this(int bar) { bar_ = bar; } void bar(int baz) { //bar_ = baz; コメント外すとError: can only initialize const member bar_ inside constructor } }
270 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 08:19:55 ] DはC++と違ってメンバ初期化子ないもんね
271 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 08:25:55 ] 参照型のクラスにはいらないし 値型の構造体にはコンストラクタが定義できない 無駄なインスタンスが作られないからメンバ初期化子はいらないわけか
272 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 08:56:39 ] 誰かstd.encodingについて3行でまとめてくれ
273 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 09:12:33 ] 切り捨てなきゃ無理
274 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 14:09:25 ] 文字列エンコーディングに関する標準が出来た感じ? encodingのドキュメントぱっと見たけど、シグニチャがGeneric過ぎて使い方がすぐイメージできんw あとEncodingSchemeASCIIとかのクラス名はASCIIEncodingSchemeのほうが良くないか。 語順がなんか気持ち悪い。 ともあれ、これにEncodingStreamと、ICUEncodingSchemeとかを加えてやれば、 Javaや.NET並のエンコーディング処理能力が得られるのかな。
275 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 17:28:28 ] >Javaや.NET並のエンコーディング処理能力が得られるのかな。 それはいいな
276 名前:デフォルトの名無しさん [2008/05/20(火) 03:00:00 ] int hoge(); void hoge(int v); で、hoge っていうプロパティになるらしいけど、 hoge++; って出来ないのは何とかならないですか? DMD 1.028 です。
277 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 03:14:21 ] なんともなりまへん。
278 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 06:16:40 ] ニュースグループで、ウォルたんにお願いしてみるしか。 気が向いたら、やってくれるかも。
279 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 07:34:51 ] +=もだめだっけ。結構前から「いつかやる予定」ってどっかに書いてなかった?
280 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 16:09:15 ] 「いつかやる予定」=「めどいからやらない」
281 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 17:00:58 ] 時の流れが、少ないコードで何も崩さずそれを追加できるよう状況を整理するのを待ってるわけか。 いや、「いつの間にか必要無くなってる」というのを待ってるのかもw
282 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 17:52:35 ] コンパイラのソースが公開されてるんだから 自分たちでやるっつーのは?
283 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:03:47 ] 言語として互換性を損なうと、それこそ意味がない。
284 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:13:40 ] >>280 今やらねばいつできる -> 今やらねばいつかできる 俺がやらねば誰がやる -> 俺がやらねば誰かやる
285 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:27:13 ] という
286 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:46:31 ] win32.windowsとかdflとか2.0対応のライブラリが 増えてきていい感じに使えるようになってきたね
287 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 13:59:29 ] あとはTango? 統合されないのかなぁ・・・ ひろいとはいえないDの世界で基本ライブラリが 2つ開発されているのはなんとももったいない
288 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 14:47:57 ] walたんがそのうち統合されるんじゃねwww みたいなこと言ってなかったっけか
289 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:25:44 ] BOFの時の質問にそんなんがあったな。 やっぱり「そのうち統合されるんじゃない?」みたいな感じだった気が。 今のところ統合する気はないってことだよね。
290 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:00:18 ] タンゴボスは駄目なのかい
291 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:05:11 ] 名前からしてダメダメオーラが
292 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:06:38 ] ウォルたんのギャグセンスは微妙w
293 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 12:32:39 ] しかし0.1ショックは面白かった
294 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:03:12 ] Tangoも…
295 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:45:02 ] import std.variant; import std.stdio; import std.string; alias Variant var; int[var] dic; dic[var("aaaa")]= 10; writeln( dic[var("aaaa")] ); あれ〜これってだめなのかな writelnで即落ちします・・・
296 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:47:22 ] VariantのopEqualsの実装がどうなってるのか確認したほうがよさげ。
297 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:43:03 ] 機能から複数のファイルに分けられたユーティリティ関数を 同じ名前空間みたいな感じでアクセス( Util.hoge() って感じに)したくて、 今はそれぞれのファイルにおいて関数をテンプレートで書いて、 ひとつのファイルでそれらをミックスインしてるんだけど、他に良い方法 ないですか?
298 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:48:34 ] ファイルを結合する
299 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:17:12 ] >>295 writeln(dic[var("aaaa")])は,本当に割り当てたキーを参照してる? dic[var("aaaa")] = 10; dic[var("aaaa")] = 20; writefln(dic); //-> [aaaa:10,aaaa:20]
300 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:18:48 ] > 298 あー、なるほど・・・。ありがとうございます! import("hoge.d"); ですよね。やってみます。 ピンと来たんだけど調べるのに時間かかってしまった・・・。
301 名前:297 mailto:sage [2008/05/24(土) 02:02:50 ] 正確には mixin(import("hoge.d")); でコンパイルオプション -Jhoge ってな感じですね。 うまくいきました。感謝です。 趣味でゲーム作るならやっぱりD言語ですねぇ
302 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:25:47 ] >>299 わ、本当だ! ありがとうございます。 if( var("aaaa") in dic ) { writeln( "has" ); //表示されない }
303 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:24:28 ] listviewにアイコン載せれるようになったらおいらはいつでも戻ってくる
304 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:33:38 ] >>302 Dのリテラル文字列ってinternされないって事なのかな?
305 名前:デフォルトの名無しさん [2008/05/25(日) 12:37:31 ] ttp://wiki.dprogramming.com/Dfl/Snapshots March 3, 2008 dfl-20080303.exe installer * Implemented ImageList. * Added images to ListView. ttp://www.dprogramming.com/listviewimages.gif
306 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:00:14 ] >>305 は>>303 へ
307 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:00:09 ] >>304 toHashは同じ値になるから,結局はopCmpやopEqualsの実装によるのではなかろうか
308 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:32:51 ] >>307 var("aaa") == var("aaa") ってなりますね。 opCmpかな〜
309 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:48:25 ] Dで大規模アプリの開発に取り掛かったんだけど言語の選択ミスしてる?
310 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:54:02 ] 大規模アプリってなんぞ
311 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:24:55 ] >309 ムチャシヤガッテとは言っておく。
312 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:33:41 ] >>309 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::。::::::...... ... --─- :::::::::::::::::::: ..::::: . ..:::::::: :::::::::::::::::...... ....:::::::゜::::::::::.. (___ )(___ ) ::::。::::::::::::::::: ゜.:::::::::::: :. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..:::: :::: :::::::::.....:☆彡:::: //[|| 」 ||] ::::::::::゜:::::::::: ...:: ::::: :::::::::::::::::: . . . ..: :::: / ヘ | | ____,ヽ | | :::::::::::.... .... .. .:::::::::::::: ::::::...゜ . .::::::::: /ヽ ノ ヽ__/ ....... . .::::::::::::........ ..:::: :.... .... .. . く / 三三三∠⌒>:.... .... .. .:.... .... .. :.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ...... :.... . ∧∧ ∧∧ ∧∧ ∧∧ .... .... .. .:.... .... ..... .... .. . ... ..:( )ゝ ( )ゝ( )ゝ( )ゝ無茶しやがって… .......... .... i⌒ / i⌒ / i⌒ / i⌒ / .. ..... ................... .. . ... .. 三 | 三 | 三 | 三 | ... ............. ........... . ..... ... ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ ............. ............. .. ........ ... 三三 三三 三三 三三 三三 三三 三三 三三
313 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:08:24 ] >>309 それはあくまで「趣味の範囲」での大規模ですね、わかります
314 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:10:17 ] >>313 GUIです。
315 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:22:10 ] GUI使ってれば大規模?
316 名前:デフォルトの名無しさん [2008/05/26(月) 23:20:17 ] ひょっとすると、GUIフレームワークを開発中なのでは?
317 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:54:12 ] >>316 ・・・それはないだろう >>314 普通のGUIアプリならDでもいいけど Dの利点は優れた構造化能力と何よりフロンティアであることです 実務を楽にこなしたいならC#の方がいいよ
318 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 10:37:03 ] >>309 答えるのが難しい質問だね。 言語仕様自体は、コード解釈で微妙な誤解が起きたりしないよう 注意が払われてるなど、大規模開発を意識したものになってる。 しかし現状では、処理系やライブラリの熟成度に不安がある。
319 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 12:08:48 ] ------ test.d ------ class T1 { public int getint() { return 1; } } ------ main.d ------ static import test; class T2 : test.T1 { public override int getint() { return test.T1.getint(); // 駄目 //return typeof(super).getint(); // こう書きたいけどこれも駄目 } } int main() { auto t = new T2; return t.getint(); } dmd.2.014で上のように書くとスタックオーバーフローになるのですが dmd.2.014と私のどちらがおかしいのでしょうか? 私がおかしい場合、どのように書くのが正解なのでしょうか?
320 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 15:11:58 ] public override int getint() { return super.getint; } これじゃ駄目な理由は何?
321 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:06:32 ] >>320 いえ、それで結構です。super.で呼べるのですね。 それを知らなくて return super(); とかいろいろやってました。 ありがとうございました。
322 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:39:58 ] TinyXMLはObjectのメンバを再定義してる部分が多くて 全部hiddenなんとかのエラーが出てしまう alias Object.print print; public void print() {} て全部やらないのいけないよね? めんどいけどしょうがないのかな
323 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:51:13 ] D言語とC++0xって闘ったらどっちが強いんですか!?
324 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:57:58 ] 純粋な疑問なんだけどプログラム言語の世界で「○○言語最強」とか言ってる連中って何がしたいの? 「強さ」の基準からしてまったくわからんのだけど。
325 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:05:12 ] 作者と信者がガチの喧嘩をしたらどっちが勝つかという問題だろう。 Dは少数派だから厳しいだろうな。
326 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:13:40 ] D教祖の筋肉とチーマObjective-C信者の飛び道具がマジノ攻防戦?
327 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:24:34 ] でもDは大砲も跳ね返すんだぜ? www.kmonos.net/alang/d/2.0/dbc.html
328 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:51:58 ] すげぇwwwwwwwwwwwwwwwwwww D言語使わせてくれwwwwwwwwwwwwwwwwww
329 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:02:19 ] D事態が弾を内包しているという罠・・・
330 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:16:40 ] その弾丸と親和性が高いのではねかえせるのですね。わかります。
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 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