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


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

D言語 Part12



1 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 01:09:54 ]
プログラミング言語 D について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)

152 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 17:51:33 ]
delegateの構文としてdoを採用するんだったらこうなるわけか。

hoge(x, y, z) do|int x, int y|
...
end

どうみてもRubyです。

しかし盛り上がりすぎワロタw

153 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 20:40:42 ]
D言語の正式版の存在の意味が分からないw
明らかに人柱版としか思えないんですけどwwwww

154 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 20:51:12 ]
>>153
正式版も何も、単にバージョンが1になったというだけの話でしょw

155 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:05:47 ]
とりあえず落ち着かないとIDEとか無理だよな

156 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:20:10 ]
>>152
hoge(x, y, z) do (int x, int y) {
...
}

でいいんじゃねえの?
パイプって左右の区別なくて気持ち悪い。

157 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:56:47 ]
char[][] commentlessScript = File.collectLines("foo.myscript") do (char[] line){
 if(line == "---EndOfScript---"){ break; }
 if(line.startWith("#")){ continue; }
 return line;
};
class File{
 static char[][] collectLines(char[] filePath) do (char[] delegate(char[]) yield){
  char[][] result;
  open(filePath) do (File file){
   while(!file.eof){ result ~= yield(file.readLine()); }
  }
  return result;
 }
 static void open(char[] filePath) do (void delegate(File) yield){
  File file = new File(filePath); scope(exit){ file.close(); }
  yield(file);
 }
}
/* コンパイラは、delegateの呼び出しが行われるのがwhileやforの中のみと判断した場合に限り、
  そのdelegate内でのbreak、continueを許します。それらが行われた場合、delegateの実行は中断され、
  delegate呼び出しから最も近いforやwhileに対してbreak、continueが行われたものとして処理されます。 */

妄想が窮まってきたので、いい加減もう寝ます……。

158 名前:157 mailto:sage [2007/02/13(火) 22:09:33 ]
……コメントに付け足させてくれ。

/* 検討事項: ... do (loop char[] delegate(char[]) yield){ ... のようにloopキーワードを付けるなどして、
  delegate引数の宣言の側でbreak、continue可能なことを明示すべきかもしれません。
  この場合、この`yield`はwhileやforの中で呼び出さない限りコンパイルエラーになることになります。 */

今度こそ寝る。

159 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 22:25:00 ]
>>156
「関数呼び出し do 関数リテラル」って形だな。

doを既存の演算子に置き換えて、
その演算子をオーバーロードしたクラスを関数呼び出しが返せば、
「関数呼び出し 演算子 関数リテラル ;」という形にはなりそう。
その場合、文じゃなくて式だけど。

160 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 23:16:44 ]
forの方が単純でいいような気がしてきた。



161 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 23:34:45 ]
トリッキーなコードには演算子オーバーロードは欠かせない。

我々にはopDoが必要だ。

162 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 05:40:33 ]
ネタでしょ?

163 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 05:57:51 ]
括弧内に { } があるのってダサくね?

164 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 06:31:20 ]
まさかこんなのが古きよきforループより分かりやすい、初心者にも
教えやすいとか思ってないよな?
しかも性能が劣るのは確実

単なるジャンプに過ぎないbreakやcontinueの代わりに例外なんて
論外もいいところ

馬鹿じゃないの?ただのオナニーじゃん

165 名前:デフォルトの名無しさん [2007/02/14(水) 06:39:54 ]
>>158
おまいばかじゃね?
ネタだとしても、折角do使ってキーワード増やさない様にしてるのに何してんだ。
そんなんなら最初から新たな構文作るだろ。

166 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 06:41:12 ]
くだらんことでスレ延ばしてる香具師は
仕様いじくりまわして使えなくしてしまおうという
スパイの陰謀にしか思えない


167 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 06:44:17 ]
どこのスパイだ

168 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 06:52:10 ]
Jで始まる言語を使うところだな。
Japanese

169 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 06:52:26 ]
for ループと do 記法の提案の話は別ジャン。

170 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 07:43:56 ]
一所懸命相手のレスをねじ曲げて馬鹿にしてるんだから水を差すな。



171 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 08:03:36 ]
うそみたいだろ
全部ネタなんだぜ

172 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 08:20:55 ]
Don't touch me!

173 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 09:11:02 ]
sampleのhtmlget.dのhtml表示部分のprintfをwritefに変えたら4invalid UTF-8 sequenceってなった(printfのままだと通る。ちなみに接続先はwww.google.co.jp)
・・・なんで?
もしかして、writefだとUTF-8通らないのか?

174 名前:173 mailto:sage [2007/02/14(水) 09:11:56 ]
あっ、改行忘れてた。すまん

175 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 09:25:14 ]
BOMとか関係あったりして

176 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 11:44:20 ]
逆だろ、writefはUTF-8とか16辺り以外通らない。

177 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 12:01:41 ]
みんな速度には結構神経使うな……当然ちゃ当然だが。

一口に速度と言っても、みんなどれくらいのをイメージしてるんだ?
俺は元々Java/Webな人間だし、個人的に作りたいモノも大抵Winアプリだしで、
停止時間が0.3秒くらいに収まればいいかな、くらいに思ってるけど。
だからforよりパフォーマンス落ちるとか程度は、(多分)全然許容範囲。

やっぱゲームとかリアルタイム処理な人は、
1万回のループが1/60秒以内に収まらなきゃ論外(数値は適当)、
delegateとか話にならん、て感じなんだろか。

178 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 12:58:51 ]
停止時間とか言ってる意味がよく分からんが、
ループ箇所の処理時間はボトルネックになりやすいという
一般論を前提にして今の話は進行してたんだろ

179 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 13:04:37 ]
>>176
たしかにそうみたいだな
import std.stdio;

void main()
{
printf("ほげほげ");
writef("ほげほげ");
}
で、ちゃんと表示されてるから。
でも、なんでちゃんと表示できなかったんだろう・・・>htmlget.d

180 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 13:17:42 ]
>>178
GC関係じゃね?<停止時間



181 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 13:30:43 ]
>>177
別に性能がどうでもいいんならVM言語やスクリプト言語でいいし
って話じゃねーの?

画像データをピクセル単位で弄くったりすることを考えると
遅いループなんて使う気にならないよ、少なくとも俺は。

182 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 13:47:42 ]
>>178
停止時間は例えば「ユーザがメニューから項目を選択してから、
再びユーザに制御が戻るまでの時間」くらいのつもりだった。

>>181
性能がどうでも良いとしても、Dは結構魅力的だと思うけど。
ランタイム要らずで起動の早い単体exeを作れる、かつC/C++より幾分モダンだし。

とゆーか、ごめん。なんか分かり切った事を聞いた気が自分でもしてきた。

183 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 14:46:30 ]
D言語そのものが人柱言語なんだからこのままイカレ仕様につっぱしってほしいぜ!
# 実用に使えるかどうかはプログラマの腕次第

184 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:00:48 ]
Rubyのイテレータとか見てると、
複雑な制御構造やありがちな制御構造をモジュール化して、
名前を付けられるって点がありがたいなぁ、と思う。

185 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:13:57 ]
>>177
意外と、会計処理でも、5時間かかるか、4時間で済むかは大問題だったりする。
夜間バッチのスケジュールが有って、会計処理なんて今時古いとか言われても、
必要なもんなんだし、お前らみたいにお絵かきやエロやってる訳じゃなく、従業員
が1万人関連取引先含めると20万人、顧客まで含めると100万人規模の、会社
にとっては、本当に死活問題。

186 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:18:17 ]
>>173
www.google.co.jpはuser agentを見てUTF-8返したりShift_JIS返したりしてた気が。
たぶんSJISで送られてきてる。

187 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:43:07 ]
>>186
つかさ。
普通にprintfで書き出して
hoge.exe > tmp.txt
でtmp.txtの文字コード調べりゃ済んだはずだよな

188 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:48:27 ]
そういう高速な処理したい人は普通にfor書いて
それ以外の速度が死活問題にならない人は短くてわかりやすい構文が使えるってのでいいんじゃないかな。

コンパイルはもともと激速なんだし構文増えてもそんなに遅くはならないと思うし。

189 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 16:23:46 ]
>>188
それはもったいないとおも

190 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 16:45:38 ]
>My goal is to make the Boost implementation code look as obsolete as a muzzle-loading smoothbore.
ガンガレWalterタソ!



191 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 16:59:48 ]
muzzle-loading smoothbore みた事無いからわかんないや

192 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:01:40 ]
>>188
ここらで直交性について触れておくべきだろうか。
まぁDはとっくに醜悪な恐竜になりつつあるがな。C++のように。

193 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:12:22 ]
> muzzle-loading smoothbore
ググって見たら軍事用語かいな。どういう喩えなのかさっぱり解らんw

>>192
STLだと型、データ構造、アルゴリズムだっけ。
Dが醜くなりつつあるというなら、どっかを削るべき?

194 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:21:11 ]
> muzzle-loading smoothbore

muzzle-loadingは先込め式銃で銃口から玉を込める銃のこと。
そしてsmoothboreはライフリングがない銃の事らしい。
とりあえず火縄銃なのかな?

195 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:26:15 ]
> 火縄銃
なるほど、obsoluteだな

196 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:34:46 ]
つまりDの目標はBoostを現在の銃と火縄銃くらい時代が違う物にしたいと

197 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:36:10 ]
要は「ちょwwBoostwwwwww」ってなるくらいってことだろ

198 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:43:37 ]
for や do のあたりの話をまとめると、こんな感じか。

・ foreach(i : 1..array.length, n; array) { ... }
 ってできたら、インデックスもズレないし、便利だよね?

・ ついでに
 foreach(i : 0..TIMES) { ... }
 ってできてもいいんじゃね?

・ それとは別に、Ruby のイテレータみたいなの欲しいな。
 times(5) do (size_t i) { ... }
 void times(size_t n, int delegate(size_t) yield) { ... }
 みたいな。

199 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:44:36 ]
boostが出てくるということは、
強力で設計の良いライブラリも持ちたいという意志はあるのねw
頑張れWalter! 出来れば「標準」ライブラリで頼むぜ!

200 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:46:57 ]
>>199
>強力で設計の良いライブラリ
boostはそんなライブラリじゃない訳だが。



201 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:48:39 ]
頑張れWalter!

202 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:49:35 ]
>>200
Walterはboostを持ちたいと言っている訳じゃないんだからいいんじゃね?


203 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:52:26 ]
boost は標準化目指してなかったっけ?

204 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:53:56 ]
>>202
既にtupleとかbindとか標準ライブラリでサポートされてきてるじゃん。

205 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:54:41 ]
>>198
そのあたりHaskellだとキレイにかけそう。

206 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:55:59 ]
>>203
C++0xで採用される予定のtr1はboostが基になってるのが多いね。

207 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 18:04:07 ]
とりあえず boost は糞で桶?

208 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 19:30:05 ]
"Boost implementation code look as..." だから、
boostの「実装コードが」時代遅れに見えるくらいにしたい、じゃね。
boostと同じ(or以上の)レベルの事を、もっと奇麗なコードで出来る言語仕様を……
というニュアンスとも。

209 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 20:33:13 ]
>>208
俺にもそう読めた
boostライブラリを言語仕様で実現したいんじゃないの

210 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 22:02:34 ]
209が208に同意してるのに微妙に違うこと言ってて混乱。

Boostみたいなライブラリをダーティハック(とかいったらC++の人に叱られそう)なしで出来るようにしたいって話では。



211 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 22:13:58 ]
変態っていえば多分彼らは納得してくれる。

212 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 22:25:59 ]
たしかにやべえ変なことしてるなあコレwって部分に興奮してる部分はあるかもだよな、>C++の人

213 名前:209 mailto:sage [2007/02/14(水) 22:40:39 ]
>>210
よく読んでみたら確かに微妙に違ったみたい
ニュアンスを完全には把握できてないや

ところでさあ
TangoってErrorクラスがなくなってたりして
dfl(dwtも?)と一緒に使うことができないっぽいんだがどうしようもないのかこれ

214 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 09:26:23 ]
ファイルコピーてstd.fileに無いの?

215 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 10:20:57 ]
>>214
? ふつうにvoid copy(char[] from, char[] to); が載ってるが。

216 名前:199 mailto:sage [2007/02/15(木) 10:33:07 ]
>>200
boostを思い出してみるに、確かに何となく違った気がする。
C++の言語仕様ならこれだけのことが可能なんだから、
これくらいは基礎として入っているべきだ、て感じ? 実際>>206な話だし。

GUIに通信にXMLにと何でも最初から入ってる、Javaみたいな意味での”強力”さってのは、
Dの標準ライブラリでは目指して無さそう? それはそれでいいのだけど。

217 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 11:33:55 ]
>>216
標準ライブラリにバイナリ本体を載せなくても、標準的なインターフェースは定義予約しておいてほしいと思う。


218 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 13:05:53 ]
>>186
あぁ、本当だ
よくよく見たらcharset=Shift_JISになってたわ

219 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 20:28:59 ]
IEやExcelを操作したいのだけど
COMを扱うライブラリを、紹介してもらえないですか?
出来れば、スクリプト並みに楽に扱えるものだと嬉しいです

あー、DもCOMも検索しづらい


220 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 23:33:38 ]
伸びてるな



221 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 00:54:15 ]
>>113-152
この流れ、おもしろすぎwwww
はたから見てて、久々にD言語使いたくなったwwww




222 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 02:18:21 ]
yield欲しい……。

223 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 02:24:25 ]
てかマイクロスレッド自体は実現できるんだったな・・・。
うらおの奴が作ってたような・・・。

224 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 02:33:01 ]
>>223
使用メモリを自分で決めるのと例外が投げられないのがちょっと気になる。

225 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 02:46:26 ]
>>224
あー確かにそうだったな・・・。
でもスタックって最初からサイズ決まってるんじゃないっけ。

226 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 03:35:21 ]
What's New for D 1.006
Feb 15, 2007
New/Changed Features

* Added -Jpath switch, which is now required in order to import text files.
* Enhanced -v output to include actual filename.
* name string for TypeInfo_Struct now part of the TypeInfo_Struct comdat.
* Compile time execution of functions

227 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 03:42:17 ]
* Compile time execution of functions
コンパイル時ユニットテストが・・・!!

228 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 10:34:50 ]
> * Compile time execution of functions
定数要求されてるところに関数書いておくと、それが
いくつかの条件をみたす関数ならコンパイル時に実行しとくよ、
という話で、ユニットテストとはちょっと違う気が

229 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 12:00:35 ]
class Person{
 MyArray!(Person) children = new MyArray!(Person)();
}

とか、ひょっとして通るようになったんでせうか。

230 名前:229 mailto:sage [2007/02/16(金) 12:44:32 ]
ダメだた……orz



231 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 13:24:14 ]
よー考えたら、newはGCにメモリをねだる処理なんだから、
コンパイル時実行で解決できるわきゃなかったか……。スレ汚し失礼。

232 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 16:00:13 ]
Web鯖みたいの作っててacceptしたSocketをスレッド作ってどんどん渡してってるんだけど
GCが自動的に動いたときに Error: Thread error: cannot pause とかいってデッドロックしてしまう
これはphobosかなんかのバグ?

233 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 17:41:38 ]
GCが動く時には全てのスレッドを停止しなければならないとかは聞いたが、
どういう順番でどう停止させているのか、あたりに問題が潜んでる可能性はあるかも。

ただ、普通にデッドロックが発生する設計になっちゃってるせいじゃないか?
という疑念がひしひしと。同期の設計を慎重に見直してみたら?

234 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 18:09:04 ]
ttp://d.puremagic.com/issues/show_bug.cgi?id=645
これかな?

235 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 19:05:41 ]
std.threadを見てみたが、これはいたるところ微妙すぎないか?
というか書き直したほうがいいなこれ
Walterタンがんばって><

236 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 01:44:30 ]
>>235
ひどい奴だな、そこまでわかってるなら手伝ってやれよ。

つか別インプリメントして投稿ってのはナシなの?


237 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 01:57:01 ]
std.threadをてきとうに応急処置してみたんだがどうだろうか?
だれかえろいひと見てもらえると助かる
grugru.mine.nu/file.cgi?v=guru_guru_2560.zip

238 名前:237 mailto:sage [2007/02/17(土) 02:07:30 ]
あああ 間違った
void wait(uint milliseconds)
のほう変更し忘れた

239 名前:237 mailto:sage [2007/02/17(土) 02:41:23 ]
grugru.mine.nu/file.cgi?v=guru_guru_2561.zip
イベントのあたりがいろいろ間違ってたのをなおしました

240 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 21:30:04 ]
なんちゅ〜かDっぽくなくて恐縮なんだが、
テンプレートクラスA(T)とクラスBがあったとして、
A!(B)のオブジェクトのclassinfoをたどって、
Tの(ここではB)のClassInfoなりTypeInfoって取得可能?




241 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 21:53:22 ]
テンプレートクラスの引数はclassinfoだとメンバ変数nameが一応持ってはいるけど、文字列だしどうしようもない。

242 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 22:26:49 ]
mixinはどうだろ

243 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 23:29:10 ]
>>239

しかし俺には評価できない罠
どういう問題が解決されているのかな

244 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 23:46:11 ]
>>243
f17.aaa.livedoor.jp/~labamba/?BugTrack%2F26
たぶんこれが直ってるのと、スレッドハンドルがどんどんリークしていたのを修正しました

245 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 01:25:19 ]
>>242
classinfo.nameはコンパイル時定数じゃないから…

246 名前:デフォルトの名無しさん [2007/02/18(日) 02:13:13 ]
>>244
>>234で絶賛放置中のBugであり>>232の原因の疑いアリという代物じゃないっすか。
問題ないならcommitして欲しいくらいですねぇ。
私ゃ評価も翻訳もできない身ですけど・・。

247 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 02:58:27 ]
>絶賛放置中
クソワロタ


身に覚えがあるし・・・

248 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 09:11:54 ]
>>240

import std.stdio;

class A(T){}
class B{}

template TypeOfA( T )
{
static if( is(T U : A!(U)) )
alias U TypeOfA;
else
alias void TypeOfA;
}

int main()
{
alias A!(B) A_B;

writefln( typeid( TypeOfA!(A_B) ) ); // modulename.B

return 0;
}

こんなんじゃだめ?

249 名前:240 mailto:sage [2007/02/18(日) 10:35:53 ]
>>248
A_Bの型からじゃなくて、A_Bのオブジェクトから取得可能か、知りたいんだよね。
Dっぽくなくて恐縮なんだが。

>>241のゆうように無理っぽそうだが。(dクス)


250 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 01:35:01 ]
SDLの話なんだが・・・
hoge.dとsdltest.dっていう名前のソースが二つあって、
以下のようにコンパイルすると、sdltest.dのほうだけ128が返るんだが・・・どうしてだろう?
この128はdmdが返してるのか、SDLが返してるのか・・・それすらも分からないorz
%dmd hoge.d SDL.lib #SDL.libはあらかじめPATHが通ってる
%dmd sdltest.d SDL.lib
ソースは以下の通り
import std.stdio;
import SDL

int main(char[][] args)
{
  if (SDL_Init(SDL_INIT_VIDEO))
    throw new Error("Could'nt initialize video");
  printf("hello,SDL!");
  return 0;
}



251 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 01:36:24 ]
あっ、import SDLに;忘れてた・・・orz
もう寝る。

252 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 01:37:51 ]
あぁ・・・orz
if (SDL_Init(SDL_INIT_VIDEO)) > if (SDL_Init(SDL_INIT_VIDEO) < 0)
でした・・・
こんどこそ寝る。






[ 続きを読む ] / [ 携帯版 ]

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

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