D言語 Part24

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語 D (D Programming Language) について語るスレッドです。

■前スレ
http://pc12.2ch.net/test/read.cgi/tech/1253443684/

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

■コンパイラ
http://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
http://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
http://www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)

■参考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/candcpp2d2 (C/C++に疲れた人のD言語2.0)
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)
ttp://dusers.dip.jp (D言語友の会)
ttp://www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)

>>2へ続く
2デフォルトの名無しさん:2010/01/26(火) 00:08:21
■ IDE
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)
ttp://alexanderbothe.com/?id=27 (D-IDE)
ttp://codepoet.sourceforge.net (CodePoet ※計画中)

■過去スレ、関連スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000

■その他関連スレ
Eclipse統合M28【Java/C/PHP/Ruby/Python/Perl】
http://pc12.2ch.net/test/read.cgi/tech/1247051216/

eclipseってそんなに良いか?【エクリプス】
http://pc11.2ch.net/test/read.cgi/tech/1099300344/

統合開発環境Eclipseプラグイン開発QA
http://pc11.2ch.net/test/read.cgi/tech/1081517094/

"Code of the Nerds" Digital Mars C/C++
http://pc11.2ch.net/test/read.cgi/tech/1044210976/
3デフォルトの名無しさん:2010/01/26(火) 00:10:20
バイナリを吐く言語スレは落ちてたので削除しました
4デフォルトの名無しさん:2010/01/26(火) 00:12:02
>>1
乙です
5デフォルトの名無しさん:2010/01/26(火) 07:32:59
>>1
6デフォルトの名無しさん:2010/01/26(火) 13:02:51
7デフォルトの名無しさん:2010/01/26(火) 21:31:21
ttp://bit.ly/4tosnw
最近のD事情がまとめられているようです。
8デフォルトの名無しさん:2010/01/27(水) 01:39:26
>>7 はPDF
9デフォルトの名無しさん:2010/01/27(水) 02:21:16
10デフォルトの名無しさん:2010/01/27(水) 06:58:12
opDispatchでcdddddddarわろたw
954 名前:デフォルトの名無しさん投稿日:2010/1/20(水) 00:09:08
Dに未来はある?

962 名前:デフォルトの名無しさん投稿日:2010/1/21(木) 19:21:55
>>954
Dに関してははっきり「ない」と言える

963 名前:デフォルトの名無しさん投稿日:2010/1/21(木) 19:59:47
Pythonを知ってるプログラマが100人いるとすればDは0.02人くらい

964 名前:デフォルトの名無しさん投稿日:2010/1/21(木) 23:18:39
pythonと比べるなんてpythonをバカにしているとしか思えない

965 名前:デフォルトの名無しさん投稿日:2010/1/21(木) 23:26:03
Python を 100 とすると

VB 1000000
PHP 500000
C/C++ 100000
Java 50000
Ruby 1000
D 0.02

968 名前:デフォルトの名無しさん投稿日:2010/1/22(金) 03:16:14
D弱杉www

969 名前:デフォルトの名無しさん投稿日:2010/1/22(金) 23:38:53
Dは永遠に迷走し続ける
12デフォルトの名無しさん:2010/01/27(水) 12:38:08
乙ー。ウォルたんの写真はー?
13デフォルトの名無しさん:2010/01/27(水) 20:01:15
ttp://www.astoriaseminar.com/images/walter.gif
うぉるたんはそろそろヒゲを生やすべき
14デフォルトの名無しさん:2010/01/29(金) 00:27:34
D3.0はいつになるんだろう?
15デフォルトの名無しさん:2010/01/29(金) 01:32:00
>> 14
>>7>>9も載せてるが、ttp://www.kmonos.net/pub/Presen/zatsu5.pdf
五月予定。
16デフォルトの名無しさん:2010/01/29(金) 03:13:28
5月に入稿、7月発売ってとこか
17デフォルトの名無しさん:2010/01/29(金) 23:06:31
>>15
thx
じゃあAndreiの本はD3.0のガイドにもなるのだろうか
英語苦手なんだよなー
18デフォルトの名無しさん:2010/01/30(土) 00:52:00
Post D2とか考えるとD3について書くのかな
発売どんどん延期してるし,最後に触れる可能性はあるか
19デフォルトの名無しさん:2010/01/30(土) 08:30:59
>>17
D3.0のガイドにもなる……か。
確かに脱稿時点でD2.0の仕様を固定と書かれているので、
その可能性は否定できないな。

>>18
同感。
20デフォルトの名無しさん:2010/01/30(土) 17:43:51
dmd 2.040

* Clarification: function returns are not lvalues
* Added shared static constructors/destructors, regular static constructors/destructors now deal with TLS
* Add -map command line switch
* Add @disable attribute
* Delegates and function pointers may be used in CTFE
* Delegate literals and function literals may be used in CTFE
* Lazy function parameters may now be used in CTFE
* Slicing of char[] arrays may now be used in CTFE
* added static/final function implementations to interfaces
* added getOverloads, identifier, and isStaticFunction traits.
* ModuleInfo changed from class to struct
* Bugzilla 3556: version(CTFE)
* Bugzilla 3728: getOverloads and identifier traits
21デフォルトの名無しさん:2010/01/30(土) 18:56:02
>>20

なんかいろいろ来たな
@disableって何だろ?
22デフォルトの名無しさん:2010/01/30(土) 19:48:56
* added static/final function implementations to interfaces

かなり前にこのスレで話題に出てたな
23デフォルトの名無しさん:2010/01/30(土) 22:23:15
toStringzがconst付いてるおかげで渡せないときどんな方法で解決するのがベター?
24デフォルトの名無しさん:2010/01/31(日) 04:09:39
>>20
乙。
これでBindings for the Windows APIを最新版で使える……。
25デフォルトの名無しさん:2010/01/31(日) 08:17:14
>>30
前に話していたのは
interface A{
int f(int i) in{assert(i>0);}
out(r){assert(r>0);}

みたいに非final/非staticなメソッドじゃなかったか?
何で普通のメソッドが含まれていないんだ・・・
26デフォルトの名無しさん:2010/01/31(日) 16:10:11
>>21
@disableはc++1xの=deleteみたいだぜ
27デフォルトの名無しさん:2010/01/31(日) 16:11:55
D言語はprivateにしても同一ソースならfriendだからな
使用禁止にするためにprivateに押しやっても
効果が出ないので@disableみたいなのがいるんだろう
28デフォルトの名無しさん:2010/01/31(日) 16:15:38
>>23
ソースで書いてくれ
それじゃわからん
29デフォルトの名無しさん:2010/02/01(月) 11:54:45
dmd.2.039なのですがsort用の叙述関数に任意の引数を渡したい
場合はどうすればよいですか?

例えば
sort!(Sorter(10), SwapStrategy.unstable)(List);
みたいにして、Listの中身を10からの差の絶対値でソートするみたいな
処理をしたいのです。
30デフォルトの名無しさん:2010/02/01(月) 14:07:19
>>29
schwartzSort
31デフォルトの名無しさん:2010/02/01(月) 16:49:30
32デフォルトの名無しさん:2010/02/01(月) 16:51:41
twitterとのこういう連携初めて見た。
3329:2010/02/01(月) 17:03:00
パチュDの人ありがとうございます。
でも実は本当にやりたいのは10がローカル変数だったりする場合なのです。

int[] ary = [1,5,9,13,18,23];
int Num = 10;
sort!q{abs(Num-a) < abs(Num-b)}(ary);
writeln(ary);

とすると

Error: static assert "Invalid predicate passed to sort: abs(Num-a) < abs(Num-b)"
instantiated from here: sort!("abs(Num-a) < abs(Num-b)",cast(SwapStrategy)0,int[])

なエラーになってしまいます。
これをC++でのbindみたいに何とかすることはできませんでしょうか。
34デフォルトの名無しさん:2010/02/01(月) 17:28:54
デリゲートを渡せばいいのでは
int[] ary = [1,5,9,13,18,23];
int n = 10;
bool f(int a, int b) { return abs(n-a) < abs(n-b); }
sort!f(ary);
writeln(ary);
35デフォルトの名無しさん:2010/02/01(月) 21:02:46
こういうのを見るとほんとDは手が広いね
36デフォルトの名無しさん:2010/02/01(月) 21:09:46
>>25 が実装されたようだ
37デフォルトの名無しさん:2010/02/02(火) 00:06:22
>>25
finalまたはstaticならvtblの衝突はない、という話だったかと思う
でも名前の衝突は回避案が見つかったのか?
interface A { static void f(){} }
interface B { static void f(){} }
class C : A, B {...}
としたときのC.fの扱いとか
3829:2010/02/02(火) 10:42:39
>>34
解決しました!ありがとう。
39デフォルトの名無しさん:2010/02/02(火) 18:54:17
>>33
int[] ary = [1,5,9,13,18,23];
int Num = 10;
sort!((int a, int b){return abs(Num-a) < abs(Num-b);})(ary);
writeln(ary);
40デフォルトの名無しさん:2010/02/03(水) 23:00:25
>>24
>>これでBindings for the Windows APIを最新版で使える……。

使ってみた。確かに数箇所コンパイラに指示された所を修正するだけで使えましたさ…だがッ!!

(d3d10.d の ID3D10Device の中の)
誤>> void ClearRenderTargetView(ID3D10RenderTargetView pRenderTargetView, FLOAT[4] ColorRGBA);
正>> void ClearRenderTargetView(ID3D10RenderTargetView pRenderTargetView, FLOAT[4]* ColorRGBA);

……なんだぜッ…(dmd2の場合)!!
…や、みんなもうご承知かもしれませんが3日ほど詰んでたので一応…
41デフォルトの名無しさん:2010/02/03(水) 23:29:11
object.Exception: Cyclic dependency in module hoge
って例外が投げられたのですが、どう対処してよいのやら・・・
どんな原因が考えられます?
42デフォルトの名無しさん:2010/02/03(水) 23:49:08
環境は?
43デフォルトの名無しさん:2010/02/03(水) 23:51:11
>>41
そのまんま、循環依存してるんじゃないの?
循環依存しないようにプログラム書いたらいいんじゃない?
4441:2010/02/03(水) 23:58:24
>>42
DMD2.040です。

>>43
循環依存ってどのような状況でしょう?
45デフォルトの名無しさん:2010/02/04(木) 00:46:10
module hoge;
import foo;
int fuga;
static this() {fuga = foo.bar + 10;}

module foo;
import hoge;
int bar;
static this() {bar = hoge.fuga + 10;}

どちらの static this() を先に実行したらいいかわからないため、循環依存の例外が発生する
4641:2010/02/04(木) 01:11:04
>>45
なるほど! よく解りました^^

しかしながら相互importで例外が発生するのなら、
素直に初期化関数を作ったほうが良さそうだ。。。
47デフォルトの名無しさん:2010/02/05(金) 10:05:35
D言語基礎文法最速マスター - はてなかよっ!
http://d.hatena.ne.jp/repeatedly/20100201/1264972016

流行ってるのか
48デフォルトの名無しさん:2010/02/05(金) 18:11:50
はやってる
4924:2010/02/05(金) 20:55:54
>>40
d3d10.d の ID3D10Device の中の定義ミスには気付かなかった。
サンキュー直しとく。
5040:2010/02/07(日) 01:14:41
…今度は Bugzilla 1687 で詰みますたorz
これは、回避可能なのか…?
51デフォルトの名無しさん:2010/02/07(日) 01:20:24
>>50
諦めてFLOAT*にしてしまってはどうか
5251:2010/02/07(日) 01:21:24
途中だった

>>50
諦めて定義はFLOAT*にしてしまってはどうか
で、呼び出し時には配列の ptr プロパティを渡す
53デフォルトの名無しさん:2010/02/07(日) 23:28:41
MicrosoftVisualD言語とか出ませんかね
54デフォルトの名無しさん:2010/02/07(日) 23:32:53
出てもすぐに古くなるしなあ。
dmd=言語仕様になってる現状そんなもんあっても仕方がない
55デフォルトの名無しさん:2010/02/07(日) 23:40:44
56デフォルトの名無しさん:2010/02/08(月) 00:15:39
>>52
あ、 >>40>>50 は別の話。書き方が悪かった。スマソ。
>>40 は FLOAT[4]* でたぶんいけてる感じ。
>>50 の方は「extern(C++)のinterface内の関数呼び出しに失敗(別の関数を呼んでしまう?)する」
と言うdmdのバグ。おいらにゃお手上げです。
57デフォルトの名無しさん:2010/02/08(月) 00:28:18
暇だから最近D言語さわってみたけど何か面白い
でも、ライブラリ周りとか統合できないの?

あとは他言語とのDLL介した連携とかでGC絡みがよくわからん・・・
DでDLL作らん方がいいんだろうか
58デフォルトの名無しさん:2010/02/08(月) 19:55:23
>>57
GCを使うのは、一つのDLL内で完結する部分のみだね。
連携部分はmallocとかAPIとかで別個に処理。
59デフォルトの名無しさん:2010/02/08(月) 21:28:27
>>56

extern (C++) の interface って DirectXのやつ?
extern (System) にしてもだめ?
6056:2010/02/08(月) 22:15:06
ごめん、関係なさそうだ。忘れてください
6156じゃなくて59:2010/02/08(月) 22:16:43
60 のハンドルは typo です。重ねてごめんなさい。
62デフォルトの名無しさん:2010/02/08(月) 22:38:14
>>58
なるほど、結局そうなるのか。

DLLのサンプルでマルチスレッド未対応になってるのは、
Dの管理外スレッドからのコールはそれこそ”リソースを管理できない”から
falseを返してると勝手に思ってるんだけど、これで合ってるのかな

D言語間でもGCのハンドルを引き回したり・・・DLLは何か後で嵌まりそうだ
63デフォルトの名無しさん:2010/02/08(月) 23:30:33
っていうかDでもっとも鬱陶しい機能だわGC
shared_ptr最高。でもC++はもう使いたくない……
64デフォルトの名無しさん:2010/02/08(月) 23:53:05
メモリ周りを楽にしてくれるのがGCならややこしくしてくれるのもGC・・・
65デフォルトの名無しさん:2010/02/09(火) 02:18:56
.Netマンセー・・・ とは言わないけど、GC含めた
統一フレームワークっぽいのがあれば何かと便利な気がする
複数のD系統DLL使ってたらどうすれば良いのやら・・・

お互いのインターフェイスとかで混乱しそうorz
66デフォルトの名無しさん:2010/02/09(火) 03:25:32
std.ffiみたいなのが欲しいね
67デフォルトの名無しさん:2010/02/09(火) 08:55:18
>>65
>統一フレームワーク
Dの弱点はそれだよねえ。.NET使うと「どの環境でも共通して使えるライブラリ群の強み」って言うのを強く感じる。
6865:2010/02/09(火) 10:43:03
自分で書いてて思ったけど、.Net程でかくなくていいから、
せめてメモリ周りくらいは何か共通基盤が欲しい。

phobos/tangoとかライブラリ関係なく使えるのが良いんだけど難しいんだろうか。
今は混ぜるな危険って感じがする
69デフォルトの名無しさん:2010/02/09(火) 11:06:47
Dの場合実行ファイル単位でGC埋め込んでるから、
共通して使えるってなると仮想マシンみたいなもんの上で実行する必要が出てくるんじゃないかなと。
あるいはランタイムライブラリ必須になったり。
70デフォルトの名無しさん:2010/02/09(火) 12:54:39
まあ、だからこそ「GCって本来OSがやるものだよね」というコメントが出ているわけで。
71デフォルトの名無しさん:2010/02/09(火) 13:17:43
それに対するMSの回答が.NETだったりするのかな。
72デフォルトの名無しさん:2010/02/09(火) 19:37:15
DWT+tangoでコード書いてたはずなのにだんだんtangobosが混ざってカオスになってきた
何でtangoはあんなに使い勝手悪いんだろう
命名規約のせいなのか
何にでもclassを持ち出すからか
73デフォルトの名無しさん:2010/02/09(火) 19:58:07
tangoは一昔前のオブジェクト指向ライブラリって印象だな。
74デフォルトの名無しさん:2010/02/09(火) 22:55:41
>何でtangoはあんなに使い勝手悪いんだろう
>命名規約のせいなのか

なぜかPHPのことを思い出した
75デフォルトの名無しさん:2010/02/10(水) 09:21:38
char[]をKeyTypeとした連想配列を、
アルファベット順にソートされた形で、foreachで回したいです。
どうやればよいのでしょうか?
76デフォルトの名無しさん:2010/02/10(水) 12:28:52
foreach (k; aa.keys.sort) {
 auto v = aa[k];
 ...
}
77デフォルトの名無しさん:2010/02/10(水) 12:35:04
>>76
thx
keyだけをforeachで回すという発想がなかったです。
78デフォルトの名無しさん:2010/02/10(水) 17:28:59
aa.sort()にしたい
79デフォルトの名無しさん:2010/02/10(水) 19:56:28
よし、上手い具合にソート済みになるようなhash値を持つ文字列型作ろうぜ
80デフォルトの名無しさん:2010/02/10(水) 21:11:23
文字列をbigendianのバイトコードとみなしたときに
たとえば上位4バイトをhash値でテーブルにして
残りの下位バイトをhash重複のリンクリストにすれば最強
81デフォルトの名無しさん:2010/02/12(金) 02:00:16
.
82デフォルトの名無しさん:2010/02/12(金) 02:48:30
>>80
(´・ω・`)あ?
83デフォルトの名無しさん:2010/02/13(土) 01:42:35
ここに来て演算子オーバーロードのやり方変更のお知らせ
http://www.dsource.org/projects/phobos/changeset/1419
opUnary, opBinary
84デフォルトの名無しさん:2010/02/13(土) 01:49:08
ひゅう
85デフォルトの名無しさん:2010/02/13(土) 08:43:56
D言語でゲームを作るとしたら、SDLしかないんでしょうか?
SDLはライセンスが面倒くさそうなのが気になります。
86デフォルトの名無しさん:2010/02/13(土) 09:43:04
SDLのライセンスってLGPLでしょ。そんなに面倒かな
あとはDXライブラリとかAllegroとか
87デフォルトの名無しさん:2010/02/13(土) 11:05:05
>>86
どうもです。
ライセンス関係はあまり知識がないのですが、LGPLはよく理解した上で使わないと痛い目に遭いそうな怖さを感じます。
DXライブラリを使う事にします。
88デフォルトの名無しさん:2010/02/13(土) 13:01:27
struct {
int member = void;
}
これできないのですが代替手段ありますか?
89デフォルトの名無しさん:2010/02/13(土) 13:08:35
あります
90デフォルトの名無しさん:2010/02/13(土) 23:40:30
なにがどうできないの?
91デフォルトの名無しさん:2010/02/14(日) 11:25:26
this/static thisかね
92デフォルトの名無しさん:2010/02/15(月) 07:45:26
D++
93デフォルトの名無しさん:2010/02/15(月) 17:53:19
std.string.splitってデリミタの文字を消して分割しちゃうけど
デリミタを残したまま分割することってできないのでしょうか。
94デフォルトの名無しさん:2010/02/15(月) 18:01:51
どういうこっちゃ
95デフォルトの名無しさん:2010/02/15(月) 19:26:26
自分で追加しなはれ
96デフォルトの名無しさん:2010/02/15(月) 21:01:58
よーしパパstd.c.string.strtokで分割しちゃうぞー
97デフォルトの名無しさん:2010/02/15(月) 22:49:41
せっかくだしCTFEできるように書いてくれ
98デフォルトの名無しさん:2010/02/16(火) 01:12:15
D#はいつ頃完成しますか?
99デフォルトの名無しさん:2010/02/16(火) 03:47:35
しません
100デフォルトの名無しさん:2010/02/16(火) 05:27:28
します
101デフォルトの名無しさん:2010/02/16(火) 07:15:45
ObjectiveD++が先です
102デフォルトの名無しさん:2010/02/16(火) 07:19:39
しません
103デフォルトの名無しさん:2010/02/18(木) 06:40:44
>>87
DXライブラリってC言語用じゃ……?
104デフォルトの名無しさん:2010/02/18(木) 06:41:36
DLL版あるんじゃなかったっけ。C#用かなんかで。
ポーティングはそんなに難しくないと思うけど。
105デフォルトの名無しさん:2010/02/18(木) 07:51:11
>>103
C#用のDLLで使えるらしいです。
ttp://d.hatena.ne.jp/imokenpi00/20100109/1263001470
106デフォルトの名無しさん:2010/02/19(金) 00:10:17
特に意味も無くclassのopAssignをオーバーライドする奴って何なの?

AssignOverride a = null;
a = new AssignOverride;

でアクセス違反になって頭抱える俺を見て嘲笑いたいの?
というかこれで落ちるのって言語仕様的にどうなんだ
107デフォルトの名無しさん:2010/02/19(金) 00:42:38
それD1か?D2だとclassのopAssignはオーバーライドできないんじゃなかったか
108デフォルトの名無しさん:2010/02/21(日) 15:33:15
まだー?
109デフォルトの名無しさん:2010/02/21(日) 20:11:12
なにがー?
110103:2010/02/22(月) 07:33:42
>>105
準備するメンドイな。
宣言とかもイチイチ書かなくちゃいけないとか。
D言語からでもDXライブラリを使える事が分かっただけでもマシか。
111デフォルトの名無しさん:2010/02/22(月) 08:18:06
>>110
>>105のサイトにコンバート済みのヘッダおいてあるじゃん。
112デフォルトの名無しさん:2010/02/22(月) 10:09:13
ダックタイピングにおいてオブジェクトの保持ってできないんでしょうか?

import std.array;
import std.range;
class Hoge {
void f(R)(R r) if (isInputRange(R))
{
  auto app = appender(ranges_);
  app.put(r);
}
private:
XXX[] ranges_;// XXXは何にすれば?
}

インターフェイスを継承する方法しかないんですかね?
113112:2010/02/22(月) 15:06:53
front関数の戻り値の型が決まっていないから、インターフェイスを継承する方法も無理か・・・。
114デフォルトの名無しさん:2010/02/22(月) 15:28:10
>>112
そのコードが無意味すぎて何したいのか分からないけど
class Hoge
{
void f(R)(R r) if (isInputRange!(R))
{
static R[] ranges_;
auto app = appender(&ranges_);
app.put(r);
}
}
は?
115デフォルトの名無しさん:2010/02/22(月) 15:49:35
>>114
それだとRの型毎にranges_が存在する事になってしまいます。

デリゲートの「引数と戻り値の型が合っていれば、どんな関数でも保持できる」のように、
「conceptが合っていれば、どんな型でも保持できる」方法があったら便利だなーと思いました。
116デフォルトの名無しさん:2010/02/22(月) 16:18:32
>>115
concept関係無しに使えるVariantとかは駄目なの?
117デフォルトの名無しさん:2010/02/22(月) 16:23:55
>>116
へ?
118デフォルトの名無しさん:2010/02/22(月) 16:47:17
>>116
Variantは格納はできても、取り出すときに型情報が必要になってしまいます。
119デフォルトの名無しさん:2010/02/22(月) 17:44:55
>>118
GoのInterfaceみたいなのが欲しいという感じ?
今だと無理な気がするし,あまり必要性がない気もする
120デフォルトの名無しさん:2010/02/22(月) 18:33:24
>>119
そんな感じです。
OOPとtemplateを混ぜて使おうとしてるから必要になるのかなぁ。
そもそもここに無理があるのか・・・。
121デフォルトの名無しさん:2010/02/22(月) 19:34:17
class Hoge(T){
 this(){
  buf = new WrapperBase[0];
 }
 void chain(R)(R r){
  buf ~= new Wrapper!(R)(r);
 }
 /**/
private:
 static abstract class WrapperBase{}
 static class Wrapper(R)if(isForwardRange!(R)&&isImplicitlyConvertible!(ElementType!(R),T)):WrapperBase{
  this(R r){this.r = r;}
 private:
  R r;
 }
 WrapperBase[]buf;
}
void main(){
 auto hoge = new Hoge!(char)();
 hoge.chain("test");
 /**/
}
「conceptが合っていれば、どんな型でも保持できる」筈。
んでさー、ForwardRangeでないInputRangeってどうやって作ればいいの?
122デフォルトの名無しさん:2010/02/22(月) 20:14:13
>>121
「conceptが合っていれば、どんな型でも保持できる」という言葉をそのままの意味でとればそうですが、ダックタイピングの機能が残っていないと意味がないです。
つまり、WrapperBaseの配列型であるbufに対して、conceptを満たす操作ができないです(buf[0].frontとか)。

InputRangeはconceptの例として出しただけです。
123デフォルトの名無しさん:2010/02/23(火) 05:12:10
type erasureとか、そこからの型の復元の話になるのかな?
124デフォルトの名無しさん:2010/02/23(火) 08:34:07
>>123
WrapperBaseからRへクロスキャストできるようにしておいて、
Modern C++ Designの第11章マルチメソッドに書いてあるディスパッチャのような物で型を復元することなるのかな。

ここまでしてやるメリットないですよねぇ。
125デフォルトの名無しさん:2010/02/24(水) 10:25:18
C++のboost::noncopyableのような物はないでしょうか?
126デフォルトの名無しさん:2010/02/24(水) 11:07:07
>>125
クラスは参照だからそもそもcopyしないよ。
127デフォルトの名無しさん:2010/02/24(水) 11:19:24
>>125
超適当に

template noncopyable() // mixin templateと書きたい・・・
{
@disable
{
this(this) {}
void opAssign(typeof(this) rhs) {}
}
}

struct Foo
{
mixin noncopyable!();
}

void main()
{
Foo a, b;
a = b; // error
Foo c = a; // error
}
128デフォルトの名無しさん:2010/02/24(水) 13:16:20
レスthx

>>126
盲点でした。
逆にコピーしたい時にメソッドを用意する必要があるんですね。

>>127
structのコピーを禁止したい場合、言語の機能や標準ライブラリではできないですか。
でも、簡単に書けますね。
129デフォルトの名無しさん:2010/02/24(水) 13:35:29
>>128
> structのコピーを禁止したい場合、言語の機能や標準ライブラリではできないですか。
それが@disableだと思うんだけども
上のnoncopyableみたいなのがPhobosに入るかどうかは分からないね

それと上のだけど@disableにするのはコピーコンストラクタだけでよかった
refな引数取る場合はちゃんとopAssignを@disableにする必要あるけど(それをnoncopyableにいれるべきかな?)
130デフォルトの名無しさん:2010/02/24(水) 14:32:38
>>129
なるほど。
@disable this(this) {}
でいいんですね
131デフォルトの名無しさん:2010/02/26(金) 23:33:44
連想配列って参照渡しですよね?

int[string] a;
int[string] b;
b = a;
b["hoge"] = 23;
b["piyo"] = 42;
if( a.length != b.length ) printf("???");


by DMD2.040
132デフォルトの名無しさん:2010/02/27(土) 00:04:52
だと思うんだけどこの前refじゃない戻り値として連想配列渡したらコピーされたような気がするんだよな
ねむいからだれかためして
133131:2010/02/27(土) 00:05:57
すみません・・・
勘違いでしたm(_ _)m

とりあえず上記のコードは間違いでした。
134131:2010/02/27(土) 00:10:28
>>132
多分それです!
戻り値をrefにして再度やってみます。
135131:2010/02/27(土) 00:37:57
うまく動いてくれないので、クラスでラップすることにしました。。。
136デフォルトの名無しさん:2010/02/27(土) 00:52:30
連想配列も動的配列も、参照渡しのように見せかけた値渡しなんじゃないかな。
例えば動的配列なら、ptr,lengthを持った構造体の変数を値渡ししてると考えれば…
http://codepad.org/LNIBIXvc
137デフォルトの名無しさん:2010/02/27(土) 01:08:29
refとかまだ怪しい動きするのかな
nothrow int func() {}
int func() nothrow {}
で動きが違うバグとか直ったのかな
138デフォルトの名無しさん:2010/02/27(土) 12:04:09
WinAPIのヘッダとobjファイルを最新版にしたいと思っています。
ヘッダは下記のサイトで手に入れました。
http://dsource.org/projects/bindings/wiki/WindowsApi

objファイルはどこで入手できるのでしょうか?
自分のHDDにobjファイルがあるのですが、どうやって入手したのか思い出せません。
139デフォルトの名無しさん:2010/02/27(土) 13:30:01
obj……ファイル……………?
140デフォルトの名無しさん:2010/02/27(土) 14:04:02
>>139
C用のlibをcoffimplibで変換すればlibは手に入るのですが、
なぜか自分の書いたコードをビルドする時、wininet.objとwininet.libのように2つ指定しないとリンクが通らない物があるのです。
HDDにWinAPIのobjファイルが一通り入っているのですが、これがどこで入手したのか思い出せないのです。
141デフォルトの名無しさん:2010/02/27(土) 14:13:52
>>140
それって、多分、win32の.libファイルを作ってないからじゃない?
ttp://dusers.dip.jp/modules/wiki/?Libraries%2FBindings%20for%20the%20Windows%20API#pb0bb81a
ここ見てコンパイルすれば必要ないと思うよ。
142デフォルトの名無しさん:2010/02/27(土) 15:12:35
>>141
今、作ってみましたが、win32.libをリンクするだけだとエラーが出てしまいます(wininet.objやwininet.libをリンクすれば出ない)。
なんでかなぁ・・・。
143142:2010/02/27(土) 18:47:28
よく考えたらwin32.libのソースはヘッダの部分だけだから、win32.libとcoffimplibで変換したlibの両方が必要なのは当然かー
144デフォルトの名無しさん:2010/03/02(火) 23:44:15
dで自己参照構造体ってどうやって作るんですか?
ノードを追加する時はcと同じく、mallocを使用するべきですか?
145デフォルトの名無しさん:2010/03/03(水) 01:06:18
知らんけどDには普通にポインタあるよ
146デフォルトの名無しさん:2010/03/03(水) 12:27:11
>>144
定義の仕方はC++と同じでいい.
インスタンスの生成は特にこだわりがなければnewでいいよ.
147デフォルトの名無しさん:2010/03/04(木) 17:47:30
DMD.2.039でWindowsのCreateProcess関数を使えなくて困ってるん
ですがstd.c.windows.windowsには入ってないのでしょうか。
148デフォルトの名無しさん:2010/03/04(木) 19:21:18
入ってないけど、自分でプロトタイプ宣言すればいいだけ
149デフォルトの名無しさん:2010/03/04(木) 23:36:19
win32は……と思ったけど最新版だと使えないのかな。まあいつものことだ。
150デフォルトの名無しさん:2010/03/05(金) 22:36:13
D言語に識別子のスペルチェックが導入されたようです。
void foo(){}
void main(){ fo0(); } // <- もしかして:fooじゃないか?とコンパイラが教えてくれる
151デフォルトの名無しさん:2010/03/06(土) 16:33:25
いつの間にか

template Value(T, T Init = T.init) {}
mixin Value!(int[string]);

みたいなのが出来なくなってて詰んだ
連想配列リテラルどうして静的に存在できないん?
152デフォルトの名無しさん:2010/03/06(土) 20:02:54
配列とは違って、内部的にはテンプレート構造体のインスタンスでしかないからなあ
中でunsafeなことやってるし、コンパイルタイムに取り扱うのは難しかろう
153デフォルトの名無しさん:2010/03/06(土) 20:23:18
なんとかインチキできんのか
154デフォルトの名無しさん:2010/03/07(日) 04:13:30
連想配列はCTFEで使用可能だし,静的に扱うことはできる.できないのはテンプレートの引数にすること.
テンプレートの引数に受け入れるためにはマングルする必要があるから,文字列表現の一意性とかが厄介なんじゃないかと思う.
155デフォルトの名無しさん:2010/03/09(火) 12:47:04
Version D 2.041 Mar 6, 2010
新しいの来たよー。
156デフォルトの名無しさん:2010/03/09(火) 14:34:37
ここにきて新機能を足すなあと思っていたら、
むしろ最終的な文法の整理になるのかな?
157デフォルトの名無しさん:2010/03/09(火) 16:04:10
つまり仕様変更などを気にせずD2を使える時期になると言うことかな。
ライブラリの整備が進んでくれないかなー。
158デフォルトの名無しさん:2010/03/09(火) 19:31:46
toDelegateとか近年稀に見る今更感
159デフォルトの名無しさん:2010/03/10(水) 13:05:17
D3がどれだけ破壊的になるか今から楽しみw
全く別物言語になったりしてな
160デフォルトの名無しさん:2010/03/10(水) 19:36:59
プロトタイプベースのオブジェクト指向が使えるようになり、動的型付けも言語がサポート
テンプレートのような面倒な機能は省略するが関数内関数やデリゲートは健在
そしてブラウザで動く
161デフォルトの名無しさん:2010/03/10(水) 21:40:14
それなんてJavaScript?
162デフォルトの名無しさん:2010/03/10(水) 22:30:41
はやくDMDScriptをCTFEでDに変換するコンバータを書くんだ
163デフォルトの名無しさん:2010/03/11(木) 06:59:05
Windows PowerShellのフォーマット演算子みたいなのが欲しいなと時々思う。std.formatはどうも扱いづらい。
164デフォルトの名無しさん:2010/03/11(木) 18:12:40
>>151
2.040ならエラーだけど,2.041ではコンパイル通るね
165デフォルトの名無しさん:2010/03/11(木) 20:17:58
4月から来たけど2.042では通らなくなってたよ
166デフォルトの名無しさん:2010/03/15(月) 03:59:39
ctgetsまだー?
167デフォルトの名無しさん:2010/03/15(月) 13:55:28
168デフォルトの名無しさん:2010/03/15(月) 19:47:13
以前ちょっと話題になったような
どうすれば.NET使ってて空白パスで落ちるように作れるのか興味がある
169デフォルトの名無しさん:2010/03/15(月) 22:58:56
D1とD2のクロージャって何か違う?
170デフォルトの名無しさん:2010/03/15(月) 23:06:58
void delegate() func() {
 int i = 1;
 return {
  writefln(i);
 };
}
func()();

とかやるとD1だとiがアクセス違反になる…んだっけ?
171デフォルトの名無しさん:2010/03/16(火) 16:38:02
>>168
.NET?
D-IDEはC++製だぞ
172デフォルトの名無しさん:2010/03/16(火) 16:38:50
>>170
本物のクロージャが入ったのはD1の途中じゃなかったか
173デフォルトの名無しさん:2010/03/16(火) 20:05:32
>>171
あり?でもsourceforgeには.NET/Monoとあるし、C#のDLLが入ってるし、
リポジトリの中身だって…

ち、畜生!世界が俺を嵌めようとしてるんだな!
174デフォルトの名無しさん:2010/03/16(火) 20:48:15
winでコンパイルしたら
なんか途方もなくでかいexeになったんだが
175デフォルトの名無しさん:2010/03/17(水) 16:11:16
import std.bind;
void foo(int a, int b) {}
bind(&foo, _0, _0);

コンパイルエラーになります。
bindって現在バグで使えない状態なのでしょうか?
176デフォルトの名無しさん:2010/03/17(水) 16:26:36
今から学ぶならDで決定?
177デフォルトの名無しさん:2010/03/17(水) 17:41:43
他に言語知っていて、言語マニアで、ネイティブコンパイルが必要な人で
言語仕様が変わっても泣かない人にはお勧め。
178デフォルトの名無しさん:2010/03/17(水) 17:45:37
言語マニアじゃないけど波長が合うから追っかけてる
学習用には資料が少ないからイマイチじゃない?
179デフォルトの名無しさん:2010/03/17(水) 20:15:54
プログラミング言語が出来るまでを学習するにはちょうどいいかも。
最初から付き合ってないといまいちだけど。
180デフォルトの名無しさん:2010/03/17(水) 20:24:26
言語にコケにされてるような気分を味わいたいなら本気でお勧め

しかし最近の言語の概念が山ほど詰め込まれたてんこ盛り言語だから
無理に学んでおけばいろんなところで役に立つ か  も
181デフォルトの名無しさん:2010/03/17(水) 20:29:44
「あ、これD言語で出てきた奴だ!」
となって成績がアップし部活でも活躍、背も伸びて彼女もできる
182デフォルトの名無しさん:2010/03/17(水) 20:47:48
逆だろ……。
今後新機能を持った言語が大々的に売り出されても、
それD言語にあったやつだろ……とかKYなこと言ってしまって空気に乗れずアンチ認定される。
ろくなことにはならんよ。

D言語がEiffelにした仕打ちでもあるけどなw
183デフォルトの名無しさん:2010/03/17(水) 20:51:28
じゃ俺もHTMLのスレ行ってそれSGMLにあっただろ・・
とか言って嫌われてくる
184デフォルトの名無しさん:2010/03/18(木) 06:30:46
>>175
bindはずっと前から壊れてるけど誰も直そうとしない
185デフォルトの名無しさん:2010/03/18(木) 08:42:37
auto f = (int x) { return foo(x, x); };
auto g = new class { auto opCall(T)(T x) const { return foo(x, x); } };

別にライブラリなくても、この程度で済むからな
186デフォルトの名無しさん:2010/03/18(木) 10:59:43
>>184
そうだったんですか。
当分は直る見込みもなさそうですね。

>>185
仕方ないのでその方法で書きますthx
187デフォルトの名無しさん:2010/03/18(木) 22:27:03
bindはconst/sharedとかref/outとかinoutとかテンプレートとかオーバーロードセットとかの問題があって
ちゃんとしたのを作るのは今のD言語の能力では難しいと思う。

>>185みたいに書けばその辺全部クリアできるんだけどね
188デフォルトの名無しさん:2010/03/19(金) 23:32:12
MS-DOSだと文字化けするんだよな。
ヲルター氏はアメリカ人だから気づいてないんだと思う。
まぁ日本語に変換するための
オリジナルライブラリを公開しているサイトがあったけどね。
189デフォルトの名無しさん:2010/03/20(土) 00:00:25
その点はDIYというか、確か日本語コンソール専用命令らしきものが一時phobosに入っていたようなな覚えがある
190デフォルトの名無しさん:2010/03/20(土) 04:29:44
MS-DOS
191デフォルトの名無しさん:2010/03/20(土) 05:26:07
そう揚げ足を取るなよw
192デフォルトの名無しさん:2010/03/20(土) 06:43:00
何言ってるんだ…?
UTF-8を表示出来ないWinのコンソールが悪いのであって、D言語を叩くのは見当違いでは?
PerlだってUTF-8をそのままコンソールに出力すれば文字化けするし。
ちなみに、
dmd -run xxx.d | nkf -s
っておまじないつけるといいかも。
193デフォルトの名無しさん:2010/03/20(土) 06:54:12
Fileに文字コード変換するフックを追加できるようにすべきなんだよ
194デフォルトの名無しさん:2010/03/20(土) 07:22:43
Windows以外でもLANGをUTF-8以外にしてたら化けるだろ。
OSに設定された文字コードに変換してから出力するべきだろ。
真面目にやるならWindowsの場合はWriteConsoleWを呼びわけるべき。
195デフォルトの名無しさん:2010/03/20(土) 07:46:33
標準出力とコンソールは区別するべきだろう
196デフォルトの名無しさん:2010/03/20(土) 07:56:25
や、だから標準出力(に限らず)の出力先ハンドルの先がターミナルかどうかで動作変えりゃいいじゃん。
197デフォルトの名無しさん:2010/03/20(土) 08:00:29
>>196
POSIXではターミナルがファイルデバイスだからそれでいけるかも試練が、
windowsでは全くの別物だから無理
198デフォルトの名無しさん:2010/03/20(土) 08:01:34
>>196
それから、リダイレクトされてるときどうするの?
199デフォルトの名無しさん:2010/03/20(土) 08:11:07
>>197
Windowsでもターミナルのスクリーンバッファはファイルハンドルで、ちゃんと区別もできるよ。
>>198
ハンドルの種類を確認して動作を変えるんだから、ハンドルの先がディスクファイルなら無変換でOK
200デフォルトの名無しさん:2010/03/20(土) 08:21:32
UTF-8を表示出来ないWinのコンソールが悪い
201デフォルトの名無しさん:2010/03/20(土) 08:23:51
設定ちゃんとすれば表示できるだろ
202デフォルトの名無しさん:2010/03/20(土) 08:37:32
cmdでさえ入力CPと出力CPが食い違ってると動かなくなったりするし、
Windowsはコンソールのコードページを変更できるようにできてないわなあ
203デフォルトの名無しさん:2010/03/20(土) 08:41:03
いやだからソースにUTF-8埋め込んでそのまま出力しているようなプログラムは
Windowsに限らずLANG=ja_JP.EUCな環境とかでも化けるだろと。
まあ最近は全部UTF-8だからWindowsだけ浮いてるんだろうけど。
204デフォルトの名無しさん:2010/03/20(土) 08:44:02
windowsの実装が特別タコだから問題になってるんだろう
205デフォルトの名無しさん:2010/03/20(土) 08:46:17
仮にWindowsのターミナルがコードページ変えられるとしてよ?
わざわざひとつのプログラムのために変えてもらうのか?
他のプログラムは全部SJIS前提に動いているのに?

どう考えてもphobos側で吸収するべき。
206デフォルトの名無しさん:2010/03/20(土) 09:37:38
いや SJIS だけが ガラパゴス なんで
207デフォルトの名無しさん:2010/03/20(土) 09:45:00
だからFileが入出力文字コードを変更できるようにすればいいだけやがな
208デフォルトの名無しさん:2010/03/20(土) 10:56:16
表示だけならコマンドで変えられなかったか
chcpコマンドとかそんなんで
209デフォルトの名無しさん:2010/03/20(土) 10:59:02
>>208
できるけどフォントが設定うまくできなくなったり文字幅の計算が糞だったり一部のアプリケーションが落ちたりする
210デフォルトの名無しさん:2010/03/20(土) 11:34:00
windowsの実装が特別タコだから問題になってるんだろう
211デフォルトの名無しさん:2010/03/20(土) 11:50:20
妙に伸びてると思ったらおまえら…

tangoはその辺ちゃんとしてくれるんだっけ?
tango.io.Stdout.Stdout("すばらしいよねtango").newline;
212デフォルトの名無しさん:2010/03/20(土) 11:58:05
tangoはConsoleとFileを分離してるからね
213デフォルトの名無しさん:2010/03/20(土) 12:22:09
テキストストリームを流すオブジェクトとバイトストリームを流すのの区別は必要だね。多くの言語やライブラリでそうなってるように
214デフォルトの名無しさん:2010/03/21(日) 04:44:08
ほんと基本的なことで申しわけないのだけれど…
windowsのコンソール画面で
文字化けしないで済むライブラリを入手したんだけど
これってどこに置けばいいのかな?
215デフォルトの名無しさん:2010/03/21(日) 04:46:46
なにその「通販でよく分からない風水の置物買ったんだけどどこに置けばいいのかな」みたいなのは・・・
216デフォルトの名無しさん:2010/03/21(日) 05:15:41
売った人に聞きなさい
217デフォルトの名無しさん:2010/03/21(日) 11:00:39
>>214
「ライブラリ側の出力の問題」と「コンソール側の表示の問題」が判れば、
大抵のライブラリで表示可能な筈だよ。
218デフォルトの名無しさん:2010/03/21(日) 11:13:51
コンソールとかどうでもいいから早くソケットをだな
219デフォルトの名無しさん:2010/03/21(日) 19:43:52
折しもTangoがIPv6に対応したそうじゃないか。
220デフォルトの名無しさん:2010/03/21(日) 19:49:01
標準ライブラリもほんと頭痛の種だな・・・
221デフォルトの名無しさん:2010/03/21(日) 20:22:03
統合するとかいう話どうなったの
222デフォルトの名無しさん:2010/03/21(日) 20:35:05
ライセンスの問題があってできてない
223デフォルトの名無しさん:2010/03/21(日) 22:52:17
2.042出てたのか
圧倒的なバグの力に屈服した模様
224デフォルトの名無しさん:2010/03/22(月) 16:28:10
225デフォルトの名無しさん:2010/03/22(月) 17:57:35
超久しぶりに来てみた
今Dってどうなってんの?
226デフォルトの名無しさん:2010/03/22(月) 18:10:40
一言で言うと
どうなってんの?
って感じかな
227デフォルトの名無しさん:2010/03/22(月) 18:19:24
ええええ???www
そんな迷走してんのか
228デフォルトの名無しさん:2010/03/22(月) 19:24:48
2009年11月に2.0の仕様が固まる予定
安心して待て
229デフォルトの名無しさん:2010/03/22(月) 19:26:51
よし、分かった
2009年11月にタイムスリップするわ!
230デフォルトの名無しさん:2010/03/22(月) 20:08:13
去年じゃないか…… 仕様固まってたっけ?
231デフォルトの名無しさん:2010/03/22(月) 20:59:25
2009年11月か。まだまだ先だな
232デフォルトの名無しさん:2010/03/22(月) 21:15:14
2.042でclearってのが追加されてるんだけど・・・
233デフォルトの名無しさん:2010/03/23(火) 01:05:25
それは前からあったよ
234デフォルトの名無しさん:2010/03/23(火) 01:30:22
>>232
俺も一瞬「すわデストラクタ問題に解答が!?」とおもったが、
clear()関数にbase classのデストラクタを呼び出す記述が追加されたって理解でいいのか?
235デフォルトの名無しさん:2010/03/23(火) 15:24:10
>>234
要するにbug fix
236デフォルトの名無しさん:2010/03/24(水) 12:46:02
C言語に
オブジェクト指向
ガベコレ
文字列処理
正規表現
を加えてくれたらそれで十分だよ。
237デフォルトの名無しさん:2010/03/24(水) 12:55:46
>>236
それC++1xで
238デフォルトの名無しさん:2010/03/24(水) 13:02:28
全く関係ないんだけどC++にはfstream, ifstream, ofstreamの区別があって
読み取り専用で開いたファイルストリームに書き込もうとするのなんかを
コンパイル時に検出できるわけだけどphobosのFileはそういう風にする予定はないのかな
239デフォルトの名無しさん:2010/03/24(水) 13:06:49
デフォルトが読み取り専用なんだからいらんでしょ?
全く困った事ないなぁ
240デフォルトの名無しさん:2010/03/24(水) 13:21:57
コンパイルタイムに検出できるエラーをわざわざランタイムまで先送りするってのは行儀がいいとは思わないな
241デフォルトの名無しさん:2010/03/24(水) 21:30:23
static 引数(だっけ?)を実装したら出来るようになるんじゃ?
242デフォルトの名無しさん:2010/03/24(水) 21:38:49
Call-Time Function Evaluation
243デフォルトの名無しさん:2010/03/25(木) 06:02:39
C言語+RAD



D言語 RADなし

だと

果たしてどちらが便利だろうか?
244デフォルトの名無しさん:2010/03/25(木) 06:18:47
GUIのデザイナに限ればツールキット付属のでいいよね
245デフォルトの名無しさん:2010/03/25(木) 07:25:29
>>244
そういうことでよろ
246デフォルトの名無しさん:2010/03/25(木) 08:48:48
>>243
C++Builderみたいなのが相手ならともかく、素のC言語+RADだと、
GUIデザインをD言語上のDSLでやるとしても(外部GUIデザイナを使わないとしても)、
まだD言語のほうが便利な気がする。
247デフォルトの名無しさん:2010/03/25(木) 23:45:44
SpanMode.breadthでディレクトリ巡回すると
4invalid UTF-8 sequenceってでる

同じディレクトリをSpanMode.depth使うと正常に終わる
バグ?

try {
foreach (DirEntry entry; dirEntries(".", SpanMode.breadth));
} catch (Exception e) {
writeln(e.msg);
}
dmd 2.042
248デフォルトの名無しさん:2010/03/25(木) 23:49:39
安心しろ、以前のコンパイラなら何の問題もなかった俺のプログラムも
2.042から不定期にUnicodeエラー出したりアクセス違反したりメモリ確保失敗したりしてる
だから安心しろ
249デフォルトの名無しさん:2010/03/26(金) 04:58:32
budのLIBPATH働いてない気がするけど何か間違ってるのかな
250デフォルトの名無しさん:2010/03/26(金) 22:51:18
関数型ライクなスタイルでコードを書こうと思ったんですが、phobosはpureがついてないのが多くて不便に思います。
std.algorithmなんかは関数型っぽい仕様してると思うのですが、なぜpureがついてないのでしょうか?
251デフォルトの名無しさん:2010/03/26(金) 22:57:03
歴史的事情なんじゃね?
pure できたのいつだっけか。
252デフォルトの名無しさん:2010/03/26(金) 23:22:22
pureで書き直してパッチを送り直せばいいとおもうよ
253デフォルトの名無しさん:2010/03/26(金) 23:36:13
なんかバージョンが1個あがるごとに関数1個ずつぷちぷちpureがついていく感じ
254デフォルトの名無しさん:2010/03/27(土) 00:07:52
>>250
pureをつけるためには引数がimmutableじゃないといけないから、
コンテナを引数に取るstd.algorithmの関数はpureにできない
255250:2010/03/27(土) 04:15:58
確かに全てのコンテナにidupのような関数を要求するのもアレですね。
それと、標準ライブラリがまだ未完成でpureに対応してない部分もあるという事ですか。
関数型で書くのも簡単じゃないなぁ。
256デフォルトの名無しさん:2010/03/27(土) 04:43:43
なるほど immutable か。
確かに外からこっそりいじられる可能性がある限り、真の pure とは言い切れないな。
257デフォルトの名無しさん:2010/03/27(土) 04:54:36
Haskell並にpureとinpureな部分を分割するのはさすがに無理かー
258デフォルトの名無しさん:2010/03/28(日) 01:08:32
import std.range;
void main() {
writeln(ElementType!(char[]).stringof);
}

dchar

この挙動は一体?
259デフォルトの名無しさん:2010/03/28(日) 01:22:50
>>258
"ほげほげ".front == 'ほ'
260デフォルトの名無しさん:2010/03/28(日) 01:24:22
import std.stdio;
static func() {
writeln("hoge");
return "fuga";
}
void main() {writeln(func);}

$ dmd -run test
hoge
fuga

mainとfuncの位置を入れ替えるとコンパイルエラーになる、そんな不思議
261デフォルトの名無しさん:2010/03/28(日) 01:52:49
そこはDではprivateと書くべきではないのか
262デフォルトの名無しさん:2010/03/28(日) 02:12:14
>>259
なるほど。
しかし配列と文字列(charの配列)とでElementTypeの挙動が変わるのは釈然としないなー
263デフォルトの名無しさん:2010/03/28(日) 04:28:19
>>262
それは思う
他の言語でもあるように配列と文字列を完全に別のものにして欲しいかも
264デフォルトの名無しさん:2010/03/28(日) 12:41:56
>>261
文法見ると関数の戻り値型は省略できないはずなんだよね
せめてautoと書かないと

ところがstaticとかつけるとコンパイル通ってしまう(privateは駄目)
たぶん変数の型を省略できる辺りの仕様と混線してるんだと思う
265デフォルトの名無しさん:2010/03/28(日) 16:24:54
266デフォルトの名無しさん:2010/03/28(日) 21:28:16
DMDのパーサは継ぎ接ぎだらけで汚いからなあ
267デフォルトの名無しさん:2010/03/28(日) 22:00:41
誰かDで書き直してやれよ
268デフォルトの名無しさん:2010/03/28(日) 22:10:08
Dで書いてもなぁ、パーサジェネレータ使ったものでないと他人が
読めるぐらい平易にならんよ
269デフォルトの名無しさん:2010/03/28(日) 22:44:40
ddmdっていう、dmdをD言語で実装するとか頑張ってるのがあるよ
http://www.dsource.org/projects/ddmd
270デフォルトの名無しさん:2010/03/29(月) 00:21:25
まず仕様が固まらないとなw
D3マダー?
271デフォルトの名無しさん:2010/03/29(月) 12:18:39
>>263
これ以上組み込み型増やすのは勘弁だわ
Cとの互換性も下がるし
272デフォルトの名無しさん:2010/03/29(月) 14:17:47
Cとの互換性大事だろうがあッ!!
273デフォルトの名無しさん:2010/03/29(月) 14:24:14
Cとの互換性は大事だよ、大事だよ
274デフォルトの名無しさん:2010/03/29(月) 15:22:52
http://www.digitalmars.com/d/archives/digitalmars/D/Why_Strings_as_Classes_75488.html

Cとの互換そんなことを考えていた頃も
あり…ありま…(ry
275デフォルトの名無しさん:2010/03/29(月) 19:57:10
dflインスコ出来ねぇ
276デフォルトの名無しさん:2010/03/29(月) 20:50:49
今生きてるGUIライブラリはGtkDとQtDだけ?
277デフォルトの名無しさん:2010/03/29(月) 20:52:23
>>274
何この大河ドラマ
278デフォルトの名無しさん:2010/03/29(月) 20:57:16
>>276
マジかよ・・・うぇ
279デフォルトの名無しさん:2010/03/29(月) 21:00:01
>>274
なげええええええええええええええええええ!!!!!!!!!!
280デフォルトの名無しさん:2010/03/29(月) 21:26:31
>>274
夜空を流れる天の川みたいだ・・・
281デフォルトの名無しさん:2010/03/29(月) 21:36:32
>>274人気杉ワロタ
282デフォルトの名無しさん:2010/03/29(月) 21:44:08
wxDは、DWTは生きている
そんな風に思っていた時期が、俺にもありました
283デフォルトの名無しさん:2010/03/30(火) 00:51:14
流れる星は生きている(もすぐ死ぬ)
284デフォルトの名無しさん:2010/03/30(火) 01:43:59
日本語でも読む気しねえよこの長さww
285デフォルトの名無しさん:2010/03/30(火) 17:03:50
char 型と、utf8 型(?)に分けちゃえば、すんなり行くような気がする今日この頃。
そうでもない?
UTF-8 と決まっている D の char 型と、C言語用の文字(列)型としての char 型が
ごちゃ混ぜになってるのがそもそもの不幸の始まりだよね?
286デフォルトの名無しさん:2010/03/30(火) 18:12:04
>>285
それなら、Cのcharに相当するのをlocale_charみたいな名前で新設する方がいいな。
UTF-16をwchar, 32をdcharって名前にしてしまってるんだから。
287デフォルトの名無しさん:2010/03/30(火) 18:23:37
(u)byteでは何か問題があるの?
288デフォルトの名無しさん:2010/03/30(火) 18:33:37
>>287
charでもubyteでも何の問題もないけど、そういうaliasが欲しいねって話と思ったんだが。
289デフォルトの名無しさん:2010/03/31(水) 11:59:12
いらねーヨ
290デフォルトの名無しさん:2010/03/31(水) 19:44:28
byteで何も困ってないからなぁ

locale_charとかsynchronizedとimmutableとforeach_reverseについで嫌いな名前になりそうだぜ
291デフォルトの名無しさん:2010/03/31(水) 20:07:45
foreach_reverseについては同意
もうちょっと良い感じのはなかったのだろうか
292デフォルトの名無しさん:2010/03/31(水) 20:15:38
いや自分が書くときはcharで困らんけどさ。
OSの言語設定や環境変数LANGに左右されるC文字列と、UTF-8固定のD文字列を区別しておかないと
混同しても何も困らない欧米人が混同したコード書きやがるよね、
というよくある話を>>285は言いたいんじゃないのか?別人だけど。
293デフォルトの名無しさん:2010/03/31(水) 20:21:13
ubyteでいいじゃん
294デフォルトの名無しさん:2010/03/31(水) 21:16:10
>>291
rforeachでいいよなぁ
295デフォルトの名無しさん:2010/03/31(水) 21:25:30
欲を言えばimmutableはもうちょっと短い言葉だと良かった
constに比べると長い
296デフォルトの名無しさん:2010/03/31(水) 21:36:58
invariantのほうが打ちやすい
297デフォルトの名無しさん:2010/03/31(水) 22:14:58
文字数の多さは最近そんな感じだな
むかしはメモリが少なかったし画面も狭かったから、
Cが発達したころ、その辺の事情と区別しやすさのバランスが取れた頃合いが5文字だったんだろう
298デフォルトの名無しさん:2010/03/31(水) 22:50:32
unsigned intをuintにした頃のウォルたんはどこへ…
299デフォルトの名無しさん:2010/03/31(水) 23:19:23
キーワードにスペース入ってるのは気持ち悪いんだよなあ
auto refとか
300デフォルトの名無しさん:2010/03/31(水) 23:39:58
static thisとかな
301デフォルトの名無しさん:2010/03/31(水) 23:41:49
こうしてD++の開発が始まったのだ
302デフォルトの名無しさん:2010/04/01(木) 00:16:11
複雑さでC++の10倍を目指します
303デフォルトの名無しさん:2010/04/01(木) 01:31:27
冗談でも言ってよいことと悪いことがある!
304デフォルトの名無しさん:2010/04/01(木) 03:54:56
先ずはD--
305デフォルトの名無しさん:2010/04/01(木) 15:17:24
そしてラブプラス+
306デフォルトの名無しさん:2010/04/01(木) 16:37:16
L言語作ってくるか…
307デフォルトの名無しさん:2010/04/01(木) 17:21:05
dllの読み込みはstd.loaderでいいのか?ライブラリ関連よくわからん
308デフォルトの名無しさん:2010/04/01(木) 22:22:43
>>307
え〜?そんなライブラリはないだろう……、と思ったがあったッ!!
うん。使えるんじゃないかな。使ったこと無いけど。
309デフォルトの名無しさん:2010/04/01(木) 22:59:51
std.loaderなんてあったんだな、しらんかった
310デフォルトの名無しさん:2010/04/01(木) 23:12:08
どっかに過去のバージョンのコンパイラは落ちてないんですか?
具体的に言うと0.149があるとABA gamesのMu-cadeが楽にコンパイルできそうなんですが
311デフォルトの名無しさん:2010/04/01(木) 23:54:09
>>308
thx
312デフォルトの名無しさん:2010/04/02(金) 00:01:04
>>310
http://www.kmonos.net/alang/d/1.0/changelog.html
ここの「D 1.049 での変更点」から落とせる。
313デフォルトの名無しさん:2010/04/02(金) 00:26:11
>>312
必要なのは0.149でしたけど、older versionsから辿って見つけることができました。
ありがとうございます
314デフォルトの名無しさん:2010/04/02(金) 11:49:03
bit型はどこいっちゃったの
315デフォルトの名無しさん:2010/04/02(金) 12:20:51
bit型 → bool型のalias → 非推奨のbool型のalias → 消滅
と順番に形を変えていきました
316デフォルトの名無しさん:2010/04/02(金) 12:34:42
バイト・ワードが定着して以降はマシン的に「1ビットのメモリ」なんて細かい扱いはしないから、
ビット単位で詰め込みたい人はstd.bitmanipで便利に使ってくれって感じの方針だな
317デフォルトの名無しさん:2010/04/02(金) 15:05:42
なるほどさんくす。
byteをboolの代わりにするのもにょもにょする
318デフォルトの名無しさん:2010/04/03(土) 10:48:05
いまある一番オススメなIDEはなんですか?
319デフォルトの名無しさん:2010/04/03(土) 11:04:00
使ったことないからまともに動くかどうかは知らないけど
使ったことがないからこそまともに動く可能性があるかもと思えるのはD-IDE
320デフォルトの名無しさん:2010/04/03(土) 12:45:14
今後C言語の置き換えが起こるとしたら、D言語で間違いないですか
もっと大きなパラダイムシフトが起こるまでそんなことないですか
321デフォルトの名無しさん:2010/04/03(土) 14:30:27
Cの代替になる言語は一つも無いんじゃね?
Cはコンパイル言語じゃなくて高級アセンブラだからなー

ただ、C++の代替にならなる可能性は…やっぱり無いか…
322デフォルトの名無しさん:2010/04/03(土) 14:46:35
代替じゃなくてDでしか作れないようなものがないと無理なんだろうね
323デフォルトの名無しさん:2010/04/03(土) 14:59:56
GC回りが整備されたら純粋なbetter Cの一角に名乗り出る資格はあると思うけどね
C++とかC#とかで書いてて思ったのは、
やはり関数の扱いがちゃんと関数で安心できることとか、
構造体型を返り値にするときの挙動の予測しやすさとかはいい点だと感じる
324デフォルトの名無しさん:2010/04/07(水) 05:47:18
言語仕様はC++の後継と言っていいと思うけど、現状、利用者が少ないからなー。
コンパイラにバグが残ってたり、ライブラリが未完成だったり、言語仕様がコロコロ変わったりするし、
そのせいもあってかIDEもまともなのがないし、ネット上の情報量も少なくて敷居が高いよね。

登場から11年経つけどこれから流行るかな・・・?
325デフォルトの名無しさん:2010/04/07(水) 06:40:08
標準ライブラリが整備されてなくてちょっと試せないのが厳しい(Tangoは最新バージョンで使えないしPhobosはネットワークとか死んでる)
あとやっぱりRubyのgemみたいなのが標準で欲しいかな
326デフォルトの名無しさん:2010/04/07(水) 10:54:17
言語仕様が固まってなくて文法がメジャーバージョンアップでもないのに
後方互換性がなく変わる状態じゃライブラリも周辺ツールも整備できねーよな
327デフォルトの名無しさん:2010/04/07(水) 16:13:59
だからD2はアルファ版だと…
328デフォルトの名無しさん:2010/04/07(水) 20:21:49
D1なら安定している
そんな風に思っていた時期が、俺にもありました
329デフォルトの名無しさん:2010/04/07(水) 21:11:11
仕様が固定したらライブラリ開発もやる気になるけど
現状ではとてもじゃないがやる気にならない
330デフォルトの名無しさん:2010/04/07(水) 21:53:14
だが待って欲しい。仕様を固定して進歩をやめたD言語に魅力などあるだろうか。
331デフォルトの名無しさん:2010/04/07(水) 21:57:21
進むも地獄とどまるも地獄
332デフォルトの名無しさん:2010/04/07(水) 22:28:37
進む地獄こそ選ぶ道
333デフォルトの名無しさん:2010/04/07(水) 22:36:42
こんなに苦しいのなら、悲しいのなら………Dなどやっぱ要る
334デフォルトの名無しさん:2010/04/08(木) 00:57:39
D言語に敵がいない、という事に最近気づいた
335デフォルトの名無しさん:2010/04/08(木) 03:05:18
無害、それ故に無敵
336デフォルトの名無しさん:2010/04/08(木) 20:36:18
<del>無害</del><ins>ほとんど無害</ins>
337デフォルトの名無しさん:2010/04/08(木) 22:35:59
「D言語」ってのが中二系小説で出てきそうな魔界の言語的なイメージなんだよ
338デフォルトの名無しさん:2010/04/09(金) 00:02:01
そんな発想が出てくるのは若さ故だな。
339デフォルトの名無しさん:2010/04/09(金) 00:36:17
クッ、奴ら、D言語で会話してやがる・・・ッ!
340デフォルトの名無しさん:2010/04/09(金) 00:40:47
┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨
341デフォルトの名無しさん:2010/04/10(土) 00:54:58
Demon's Language

Version D 2.043 Apr 6, 2010
New/Changed Features
.init property for static arrays is now an array literal
Improved speed of associative arrays
std.bigint has been completely replaced with a faster implementation. Multiplication is now 5 times faster, division is 300 times faster, and squaring is 10 times faster. For large numbers (~5000 words), the speedup is 5 times larger than this.
Bugs Fixed
Fixed memory corruption problem with array appends
・・・


Bigint!

動的配列appendのバグが直ったー
ハッハー
342デフォルトの名無しさん:2010/04/10(土) 01:43:48
!!! 300 times !!!
343デフォルトの名無しさん:2010/04/10(土) 01:49:39
しかしD言語はいくら努力してもいつまでも日陰者のままなのであった・・・
344デフォルトの名無しさん:2010/04/10(土) 02:11:24
むしろ努力すればするほど……
345デフォルトの名無しさん:2010/04/10(土) 03:12:24
phobosとtangoをくっつけたら結構いけるはずなんだよ…
346デフォルトの名無しさん:2010/04/10(土) 07:46:11
で、最近は仕様固まってんの?
347デフォルトの名無しさん:2010/04/10(土) 08:31:25
しようがないのが仕様
348デフォルトの名無しさん:2010/04/10(土) 08:53:19
それならしょうがない
349デフォルトの名無しさん:2010/04/10(土) 09:30:16
しようゆうこと
350デフォルトの名無しさん:2010/04/10(土) 10:48:01
safeDの範囲ならもう大体決まってるんじゃない?バグは多いけど。
javaやC#ライクに書けるネイティブコンパイラとしては、確かに敵がいない

ただ、そこから一歩踏み込んだ先は広大なカオス領域。
そして、Dユーザは必ずそこに向かう。
351デフォルトの名無しさん:2010/04/10(土) 10:53:58
safeという建前のmixinの黒魔術っぷりとか割と目も当てられない気が
352デフォルトの名無しさん:2010/04/10(土) 11:13:31
mixinなんて使い出す人は、設計能力が足りないんだと思う
353デフォルトの名無しさん:2010/04/10(土) 11:21:06
D言語なんて使い出す人は、設計能力が足りないんだと思う
354デフォルトの名無しさん:2010/04/10(土) 11:22:33
D言語なんて使い出す人は、現状認識能力が足りないんだと思う
355デフォルトの名無しさん:2010/04/10(土) 11:23:19
どうみても、役には立たないな。
理論とは適当に折り合いをつけてプログラムしろぐらいの意味しかないだろ。
356デフォルトの名無しさん:2010/04/10(土) 11:31:14
忌み嫌われる手法、黒魔術
それを許容するのも、Demon's Lang(略)
357デフォルトの名無しさん:2010/04/10(土) 11:55:45
まだでかいproduct作る気にはならない(作ろうとすると必ず後悔する)けど、
Rubyでやるような内容で計算コストがかかる時とか大規模行列計算のない数値実験には重宝している。
実際速いよねDMD
358デフォルトの名無しさん:2010/04/10(土) 12:46:58
言語仕様の変更を受けにくいコーディングスタイルを誰か確立してくれ詳しい人
鉄板の保守的な機能のみ使うガイドラインというか

アプリ作る時と遊びたい時を分けたいんだよね
359デフォルトの名無しさん:2010/04/10(土) 12:56:45
大規模プログラムでOPTLINKが妙なエラーを吐く件は修正されたんだっけ?
360デフォルトの名無しさん:2010/04/10(土) 13:33:54
>>358
例えば俺はあるプログラムでBigIntを何年か安心して使ってたんだが
2.043でコンパイルしたらそこでエラーを吐いたので修正が必要になった
そういう事態を避けるにはphobosを避けるしかないな!
361デフォルトの名無しさん:2010/04/10(土) 13:36:02
いや、Dを避けるしかない
362デフォルトの名無しさん:2010/04/10(土) 13:38:08
まあ待て、std.c.*とCの文だけ使ってれば大丈夫だろ
363デフォルトの名無しさん:2010/04/10(土) 13:52:23
それって
364デフォルトの名無しさん:2010/04/10(土) 14:58:36
constがどうとかエラーになるな
365デフォルトの名無しさん:2010/04/10(土) 15:20:04
Goと得意分野が被りそう
366デフォルトの名無しさん:2010/04/10(土) 15:25:09
・D固有のライブラリは避ける
・constやinvariantも避ける
・portingされたライブラリは言語側の仕様変更で使えなくなるので避ける
・templateはいきなりmixinキーワードが必須になったりするので避ける
・GCやスレッドには触らない
・classはたまにトラブルが起きるので避ける
・動的配列はたまにエラーの発生源になるので避ける
・あるはずの変数が消えてたりするのでクロージャは避ける
・invariant {}で無限再帰になってりするので契約を避ける
367デフォルトの名無しさん:2010/04/10(土) 15:32:49
……素のCでよくね?
368デフォルトの名無しさん:2010/04/10(土) 16:03:52
TIOBEプログラミングコミュニティ指数
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Dはころころ仕様や文法が変わってカオスなわり25位と健闘
Dとは違ったCの別の進化した形、Objective-Cは長い冬の時代を乗り越え42位から11位へと大躍進
ウォルタータンやDigital MarsにはD本出して開発版をD3に移行したら
devチームとメンテナチームを分けて編成してD2を安心してプログラミングに使える体制を確立して欲しいな
369デフォルトの名無しさん:2010/04/10(土) 16:08:34
20位以内に見当たらないから絶望してたら25位かよ
すげぇな

そしてGoにはすでに10も差をつけられている
370デフォルトの名無しさん:2010/04/10(土) 16:41:19
obj-c > iphone効果か
371デフォルトの名無しさん:2010/04/10(土) 20:38:49
髭の長さとの相関関係を誰か出してください。
372デフォルトの名無しさん:2010/04/11(日) 20:26:44
ttp://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/28/computer-languages-and-facial-hair-take-two.aspx
これですね
5年くらい前の話かと思ってたらたった2年前の記事で驚いた
373デフォルトの名無しさん:2010/04/11(日) 22:23:24
全体的に濃い顔だから、流れでまつもとゆきひろの顔が妙に面白く見える
374デフォルトの名無しさん:2010/04/14(水) 14:49:58
struct MyKey {
char[] a, b;
this(in char[] a, in char[] b) { this.a = a.dup; this.b = b.dup; }
}

int[MyKey] arr;
arr[MyKey("hoge", "fuga")] = 0;
auto foo = arr[MyKey("hoge", "fuga")]; // ここで実行時にRange violation

toHashもopEqualsもopCmpもデフォのままなのが原因だとは思うのですが、デフォの挙動は一体どういう物なのでしょうか?
375デフォルトの名無しさん:2010/04/14(水) 18:42:19
writeln(MyKey("hoge", "fuga") == MyKey("hoge", "fuga") ? "equal" : "not equal");
ってことじゃないの?
376デフォルトの名無しさん:2010/04/14(水) 19:10:17
>>375
ありです。
同値性ではなく同一性ということですか。
==での比較とisでの比較とあるなら、==のデフォは同値性にして欲しかったなぁ。
377376:2010/04/14(水) 19:30:22
あれ?しかし、MyKeyにopEqualsとopCmpを定義しても連想配列にアクセス時のエラーが直らないです。
==での比較はできるようになったのになぜ?

const bool opEquals(ref const MyKey rhs){
return cmp(this.a, rhs.a) == 0 && cmp(this.b, rhs.b) == 0;
}
const int opCmp(ref const MyKey rhs){
auto result = cmp(this.a, rhs.a);
if (result != 0){return result;}
else{return cmp(this.b, rhs.b);}
}
378375:2010/04/14(水) 19:43:01
ごめんよくわからずに言った
ググってみたらこんなんが引っかかった
http://www.bugbearr.jp/?D%E8%A8%80%E8%AA%9E%2F%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97
379デフォルトの名無しさん:2010/04/15(木) 01:15:17
それ、ちょっと古くなってるし具体例がないから、こっち見るのが正解かな。
http://www.kmonos.net/alang/d/2.0/arrays.html#associative

たぶん toHash の定義をしていないから、
object の toHash 使っちゃっていて、ハッシュ値としてアドレスが返されて
違うキーと判定されているんだと思うよ。
380デフォルトの名無しさん:2010/04/15(木) 05:53:06
>>378-379
どうもです。
toHashも定義する必要があるんですね。
381デフォルトの名無しさん:2010/04/15(木) 21:20:25
>>379
関係ないけど .get(Key key, lazy Value defaultValue) なんてあったのか。
.get(Key key, lazy Value defaultValue = Value.init) にしてほしい。
382デフォルトの名無しさん:2010/04/15(木) 21:40:42
byKey()とかいつの間に…
383デフォルトの名無しさん:2010/04/15(木) 21:41:41
.clear()はいつになったらつくんだ
384デフォルトの名無しさん:2010/04/17(土) 21:40:08
古い話かも知れないけど、
デシマル演算北ーーーーーーーーーーーーーーーーーーーーー!!
http://www.kmonos.net/alang/d/2.0/d-floating-point.html

これで、intは、数値計算に使わないことにすれば良いと思う。
アドレッシングにしか使わない事にすれば、色々良いと思う。
385デフォルトの名無しさん:2010/04/18(日) 01:23:12
decimal っていわゆる IEEE-754 準拠の型だと思うんだけど、
単なる比較として書かれているだけなんじゃないの?
http://ja.wikipedia.org/wiki/IEEE_754
http://journal.mycom.co.jp/column/architecture/104/index.html

デシマルでうれしいのは2進<->10進変換での変換誤差が出ないことであって、
(0.1*10 =1.0 が保障される)
Exponent がある限り精度はぶれるし、
結局 std.bigint の代わりにはならないよ。
amd64 だと10進演算殺されたし、
現段階ではそもそもCPU,FPUのサポートが得られないから
実装されたとしても、とても遅いだろうね。

まぁ、数値型の使い分けは結局のところ適材適所だよね。
386デフォルトの名無しさん:2010/04/18(日) 02:35:32
>デシマルでうれしいのは2進<->10進変換での変換誤差が出ないことであって、
>(0.1*10 =1.0 が保障される)

いやそれ2進<->10進変換での変換誤差じゃないからw
387デフォルトの名無しさん:2010/04/18(日) 02:44:48
>>386
???
0.1 を2進変換したときにどうなるのか知らんの?
http://www.ritsumei.ac.jp/se/rv/joen/program05_2/program2_05.html

388デフォルトの名無しさん:2010/04/18(日) 02:54:13
もうちょっとわかりやすいとこにしておくか。
http://www-01.ibm.com/support/docview.wss?uid=lsj14c32aea1f40e37ee49257037000d56fa

>>386
丸め誤差と言いたかったの? それともなんか別の話?
389デフォルトの名無しさん:2010/04/18(日) 07:43:14
0.1*10=1.0にならないのは小数点の位置を2のn乗で表現するからであって
指数部/仮数部のエンコーディングが2進だろうと10進だろうと関係無いって話でしょ?
390デフォルトの名無しさん:2010/04/18(日) 08:49:18
>>389
何を言ってるんだこれ?
ならば何のために decimal の必要性があるのか説明してよ。
391デフォルトの名無しさん:2010/04/18(日) 09:23:56
デシマルで1/10は表現できるだろう。じゃあ1/3は?
結局そういうことをしないといけない場合は
有理数クラスとかを作って対応するべきだよ
392デフォルトの名無しさん:2010/04/18(日) 09:31:56
整数でカウンタを扱って、都度10で割って使えばいいよ
393デフォルトの名無しさん:2010/04/18(日) 10:11:14
>>390
0.1が表現できないのは、小数点の位置を1, 0.5, 0.25...と浮動させるからであって
2進数10進数関係無いという話だよ。
10進の必要性なんか実装次第だろ。BCDなんかダンプ見て人間がわかりやすいのが目的だしな。
少なくとも「IEEE754の」decimalの必要性は10進数だからではなくて、1, 0.1, 0.01...と浮動するからだろ。
394デフォルトの名無しさん:2010/04/18(日) 10:24:21
>>390 は何かを勘違いしてるんだろう
まあ、>>389 の説明も分かりにくい気がするけど

仮数部×10の指数部で表現してありさえすれば、
仮数部と指数部を2進数で表現していても
0.1*10=1.0 になるよ、と言えばいい
395デフォルトの名無しさん:2010/04/18(日) 10:26:11
(仮数部)×10の(指数部)乗 で表現してありさえすれば

だった
396デフォルトの名無しさん:2010/04/18(日) 10:55:16
で、それが、2進数と10進数の変換誤差ではないという説明になるんですか?
397デフォルトの名無しさん:2010/04/18(日) 10:58:30
そりゃさー、最初から10倍の値入れておけば1/10の値は安全だってのはその通りなんだが、
それは詭弁だろー。
指数がでかい場合にハードウェア的にどう演算するつもりなんだ?
398デフォルトの名無しさん:2010/04/18(日) 11:02:15
実際の演算では、2進と10進との変換誤差を「有効桁数」でごまかしているんだよ。
この有効桁数の間であれば「1つの値」は確かに正しく変換できるんだ。
だけど、有効桁数より小さい値に誤差が含まれていて、
これが計算していくと累積するんだよ。

1/3 の話はもうちょっと違う話だから分けて話をしてくれ。
399デフォルトの名無しさん:2010/04/18(日) 11:31:34
1/3だって、表現形式が仮数*3^指数だったら、誤差無く表現できるよ。
ちなみに誤差無く表現できる値同士を計算して結果も誤差無く表現できる値であれば
誤差は累積しないぞ。

やっぱりなんか勘違いしてるな。
400デフォルトの名無しさん:2010/04/18(日) 11:41:15
2進整数 + 10進指数なら誤差は出ないよ
ってのは、
10進小数を2進小数に変換するときに誤差が出るという事実があって、
それの回避策だろ?
で、最初にケチ付けた奴は「それは変換誤差じゃない」と言ってるのだから
その説明がほしいんだよ。
401デフォルトの名無しさん:2010/04/18(日) 11:42:43
>>399
2進浮動小数点数で計算した場合の話をしているんだが、
何を自分勝手な理屈並べているんだ?
402デフォルトの名無しさん:2010/04/18(日) 11:43:59
2つの表現形式の話が混ざり合ってわやくちゃになってる気がする

よーしパパPIを正確に表現する事に挑戦しちゃうぞー
403デフォルトの名無しさん:2010/04/18(日) 11:45:21
そりゃ有理数クラス作ったり指数いじったりすれば誤差なく表現可能だよ。
そんなの分かり切っている。
だけど、2進浮動小数点数で動いているのが現在の多くのハードウェアだろ?
わけわかんないわ。
404デフォルトの名無しさん:2010/04/18(日) 12:14:03
まあ10進じゃないと銀行が困るという話だからねえ
それ以外にもそういう場面はまあいくつかあるのではあるが
405デフォルトの名無しさん:2010/04/18(日) 12:32:18
銀行が困るのは浮動小数点演算であって2進演算ではない
406デフォルトの名無しさん:2010/04/18(日) 12:36:55
>>400-401
何が分かってないのか李恢した。

まず、何進数で表そうが整数は整数で誤差なんか全くない。オーバーフローしない限り。
これはOKだよな。

次に、浮動小数点実数というのは、実数を仮数部×n^指数部のふたつの整数で表現する形式。
これもOKだよな。

では0.1を通常の「2進」浮動小数点数で誤差なく表現できない理由はなにか。
0.1を仮数部×「2」^指数部で表したときに仮数部が循環小数になってしまい
有限桁ではそのまま表現できないからだ。
これもOKだよな。

で、この指数部分「2」は2進数の2とは関係無い数字だ。
407デフォルトの名無しさん:2010/04/18(日) 12:40:02
お前が三国志好きということは理解した
408デフォルトの名無しさん:2010/04/18(日) 12:44:27
IEEE754ではたまたま2進形式では基数も2、10進形式では基数も10で揃えているが
これらは独立したパラメータなので当然別の組み合わせも考えられる。
で、2進・基数10なら0.1も表現できるし、10進・基数2なら0.1はやっぱり誤差が出る。

要するに一般的に浮動小数点実数の誤差と言われているものはn進変換の誤差では無くて、
実数を仮数部と指数部に分割したときの仮数部の丸め誤差だ。
OK?
409デフォルトの名無しさん:2010/04/18(日) 12:45:20
>>406
おいおい、で、ハードウェア的にその2進整数+10^n方式をいったいどうやって実装するんだよ…
VHDLで書いて見やがれ。

で、現実問題として実運用されている2進浮動小数点方式(2進数+2^n 方式)で
0.1に変換誤差が出ることは同意なんだな?
それは変換誤差ではないというならそれは何なのかと聞いているんだ。

410デフォルトの名無しさん:2010/04/18(日) 12:50:08
>>409
x それは変換誤差ではない
o それは変換誤差とは言わない
411デフォルトの名無しさん:2010/04/18(日) 12:50:31
あー結局丸め誤差という結論なのか。
仮数部の丸め誤差を変換誤差と呼んではいけない理由がわからん。

正式な用語ではなかったかもしれんが、それケチ付けることなんか?
412デフォルトの名無しさん:2010/04/18(日) 12:53:02
>>409
単にdecimal64だかdecimal128だかから、変な圧縮10進エンコードを省くだけだろ……。
VHDLで書けというなら書いてもいいが、見積りと報酬はちゃんと寄越せよ。

VerilogじゃなくてVHDLの名前を出すあたりマニアックだなw
413デフォルトの名無しさん:2010/04/18(日) 12:56:16
>>412
2進数の10進シフトをどう実装するつもりなのか興味あります。
414デフォルトの名無しさん:2010/04/18(日) 12:58:07
>>413
おいおい、n*10をn*8+n*2にするのは最適化の初歩だぜ。
415デフォルトの名無しさん:2010/04/18(日) 12:58:48
D
416デフォルトの名無しさん:2010/04/18(日) 13:01:43
言っておくが、decimal は仮数部は2進整数じゃねーぞ。10進のディジットをもってるんだよ。
ビットで表現されているかもしれないが
結局のところ a * 10^n + b * 10^(n-1) とかで格納されているんだ。
だから10進シフト演算も簡単にできるんだよ。
decimal じゃなくて、ちゃんと2進整数でなんとかしやがれよ?

417デフォルトの名無しさん:2010/04/18(日) 13:03:02
>>414
右シフトどうすんの?
418デフォルトの名無しさん:2010/04/18(日) 13:05:27
>>416
>>414を読んだ後にそれを書いているとしたら頭を疑うな。
ちなみにdecimalは10ビットで10進3桁を表現する圧縮がかかっているので
1000倍は楽だが10倍とかはちょっとややこしいと思う。
繰り返すが2進数を10倍するのは8倍+2倍でいいからね。
419デフォルトの名無しさん:2010/04/18(日) 13:08:22
で、実際のところ、できないことはないだろうが、そんな器用なハードウェア作るより、
10進のまま扱う方が楽なんだよな。
だから decimal みたいな折衷案が出てきてるんだろ?

単に言葉に突っ込んだだけなら、>>388 で結論出てる。
というわけでおしまいだ。
420デフォルトの名無しさん:2010/04/18(日) 13:09:28
あぁ、ちょうど書き込んだらそれ見えたんだ。だから右シフトのみ限定で聞いている。
421デフォルトの名無しさん:2010/04/18(日) 14:02:46
伸びてると思ったら・・・
きょうの被害担当艦か
422デフォルトの名無しさん:2010/04/18(日) 14:31:49
器用なハードウェアって、IBMがPOWERで既に実装してるし
AMDは今度出す奴に実装してくる。インテルがmathライブラリ
を提供してるけども、実装するのかどうかは分からない。
インテルしねって感じ。
423デフォルトの名無しさん:2010/04/18(日) 14:38:47
後、C言語やC++の言語委員会で、日本のメーカーが
10進演算に関して反対してたとか聞いた。
死ねばいいのにって思う。
424デフォルトの名無しさん:2010/04/18(日) 14:39:00
いや、だから、POWER で実装してるのは decimal であって、
2進 + 10^n とかいう奇怪な実装じゃないっしょ?
425デフォルトの名無しさん:2010/04/18(日) 14:44:38
>>424
死ねよ馬鹿。
Powerで実装したのは、Densely packed decimalで、IEEEも同様。
強烈に奇怪だけど、計算が速い。18桁でもワンクロックでいけるらしい。

http://journal.mycom.co.jp/column/architecture/104/index.html
こういう奴だ。ボケカス屑糞勉強不足、優しさ不足。
なのために生きてるんだろうねって思う、なんで10進演算を疎かに
出来るんだろって思う、キチガイなんじゃねーの?
426デフォルトの名無しさん:2010/04/18(日) 14:48:13
2010年の技術水準を基準に語られても・・・
427デフォルトの名無しさん:2010/04/18(日) 14:50:19
>>425
だからさー、仮数部は「2進数」じゃないんだよそれ。
「10進数」を形変えて入れてるの。
だから、POWERの実装はとても回路は素直で優しいんだよ。

奇怪だと言っているのは「2進数*10^n」の話なんだよ。
428デフォルトの名無しさん:2010/04/18(日) 14:52:12
>>427
だからIEEEのデシマルは、Densely packed decimalだって言ってるんだろうがー
何言ってるの?おまえ字読める?お前自分が奇怪な事言って、奇怪とかいうな
ちゅうの。
429デフォルトの名無しさん:2010/04/18(日) 14:54:03
だれか、数学できる人連れてきてー
430デフォルトの名無しさん:2010/04/18(日) 14:55:05
あーとなんかわけわからんくなってきた。
10進を貶す奴は馬鹿でくず、存在価値無し、
ビッグイントより、数値計算は浮動小数10進に移行するべき。
イントはアドレスの計算とループカウンターという役割に限定すべき。

インテルの屑野郎早くハードウェア実装しろ。

以上だと思う。
431デフォルトの名無しさん:2010/04/18(日) 14:58:32
>>428

>10進数を圧縮格納するDensely Packed Decimal形式

>しかし、そのままの形式では演算はできないので、
>演算前にBCD形式に戻し、演算後、結果をDPD形式に戻す必要がある。

元記事のこの文読めないんだな。
432デフォルトの名無しさん:2010/04/18(日) 15:05:10
>>431
命令デコードのついでに出来るので、ワンクロックなんだよ。
433デフォルトの名無しさん:2010/04/18(日) 15:05:10
誰かCOBOLer連れてきてー
434デフォルトの名無しさん:2010/04/18(日) 15:07:38
>>432
うん、それはその通り。とても素直なハードウェアが作れるよね。

でも、「2進数整数 * 10^n じゃないよね」って話を何度もしているんだけど、
なんかわかってもらえないんだ。
中身は結局BCDなのにさ。
435デフォルトの名無しさん:2010/04/18(日) 15:10:55
>>433
呼んだ?

>>434
馬鹿者ねーの中身がBCDだろうがなんだろうが10進演算こそ正義なんだよ。
まずは正義なんだよ。お前が言ってるのは無意味かつナンセンス。
あり得ない事を自分で書いて、あり得ないよねって言ってるんだよ。
釣られた俺が悪いんだけど、10進演算が正義だと言うことを知らない、
悪魔がやたらめったらいるから悪いんだよ、悪魔はしねっていうんだよ。
436デフォルトの名無しさん:2010/04/18(日) 15:16:56
いや、俺は10進演算欲しい派よ?
そうじゃなくて、10進小数から2進小数に変換した時に誤差が出るから
「変換誤差」って書いたら
なんか「丸め誤差」と言い直させないと気が済まない人が出てきて、
2進整数*10^n なら誤差が出ないとか訳わかんない説明しだしたから
そんなアホなハードウェア作れんだろjk
と言っただけの話。
437デフォルトの名無しさん:2010/04/18(日) 15:21:54
>>436
>>430でその間違いに気がつき始めたけど、認めるのが恥ずかしいから
馬鹿だのアホだの書いて誤魔化してるのに、そうやって指摘するのは、
多分、優しさが足りないんだと思うんだよね。

そもそも、日本の言語関係者に、10進数を疎かにする奴が多いのが悪いんだし。
そういう悪魔が多いから、俺がトチ狂ったのは正しい行為だと強弁してみる。
だいたい、10進数の話になると訳分かってない奴が、訳の分からんこと言って
うやむやにするんだよ。酷いんだよ、何時も、何時も、IBMとかIEEEが
規格にしたら、いやいや、俺だって必要だとは思ってたよとか言い出すンだよ。
おかしいよねみんな、なんか変なんだよ。異常。
438デフォルトの名無しさん:2010/04/18(日) 15:30:37
落ち着け。お前は悪くないんだ。落ち着け
439デフォルトの名無しさん:2010/04/18(日) 15:45:12
TVによる洗脳と、ネットの匿名文化で
この国はおかしくなった
440デフォルトの名無しさん:2010/04/18(日) 15:51:20
四の五の言わず、自分で書いてウォルター納得させたらいい。
441デフォルトの名無しさん:2010/04/18(日) 17:01:58
ここまで読み飛ばした
442デフォルトの名無しさん:2010/04/18(日) 17:18:49
ゴール決めずに走り出してはいけませんって
小学校で教えればこんなことにはならなかったのに
とりあえず走れ教育を施されてしまった
我々は愚かな為政者の犠牲になったのだ…
443デフォルトの名無しさん:2010/04/18(日) 17:26:15
ここまで俺の自演
444デフォルトの名無しさん:2010/04/18(日) 19:34:02
0120-444-
445デフォルトの名無しさん:2010/04/19(月) 21:05:47
無関係のスレで以下のようなレスを見て何のことかと思ってしまった

782 :名無しさん@十周年 :sage :2010/04/19(月) 17:38:30
まあDMCの生みの親がDな訳だし
446デフォルトの名無しさん:2010/04/19(月) 21:35:36
Thread.pauseとThread.resumeが無いのは誰が許したんですか?
447デフォルトの名無しさん:2010/04/20(火) 00:25:08
レイプレイプレイプレイプレイプレイプレイプレイプレイプレイプ
448デフォルトの名無しさん:2010/04/20(火) 15:52:24
>>446
どの言語でも、当然のように思いついて当然のように実装して、
痛い目にあって取り下げるという歴史があるんだよな。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/misc/threadPrimitiveDeprecation.html
.NET Framework でもおなじことやってたはず。

外から強制的に止めるというのはダメで、
一度スレッド内部にお伺いを立てて、スレッド内部で sleep していただく
というのがセオリーになってるね。
449デフォルトの名無しさん:2010/04/21(水) 03:07:52
std.complexがー
450デフォルトの名無しさん:2010/04/23(金) 19:59:47
import std.date;
void main() {
std.stdio.writeln(toString(getUTCtime));
std.stdio.writeln(toString(UTCtoLocalTime(getUTCtime)));
}

Fri Apr 23 10:57:03 GMT+0000 2010
Fri Apr 23 10:57:03 GMT+0000 2010


import std.datebase;
import std.date;
void main() {
std.stdio.writeln(toString(getUTCtime));
std.stdio.writeln(toString(UTCtoLocalTime(getUTCtime)));
}

Fri Apr 23 19:56:53 GMT+0900 2010
Sat Apr 24 04:56:53 GMT+0900 2010


           !?



そんな些細なことはどうでもいいけどphobosはいつになったらまともな日付フォーマット関数が入るの?
451デフォルトの名無しさん:2010/04/23(金) 20:07:46
言語の仕様が固まれば作る奴現れるんじゃね
452デフォルトの名無しさん:2010/04/23(金) 20:15:33
文句を言う前に自分で作って提供するのがいいんでね?
453デフォルトの名無しさん:2010/04/23(金) 20:18:33
そしてバージョンアップで使えなくなるのであった
454デフォルトの名無しさん:2010/04/23(金) 20:27:51
誰か、llvmのドキュメントを翻訳してくださいな。
パーサーから、中間言語までを翻訳してくれれば
D言語だけじゃなく、色んな人が幸せになれると
思う。特に俺なんか喜ぶ。俺のために翻訳してくれた
って感謝する。
455デフォルトの名無しさん:2010/04/23(金) 20:47:33
翻訳するために原文を読むと、その本人にはもう翻訳が必要無くなるという
翻訳者のジレンマがあるからな
456デフォルトの名無しさん:2010/04/24(土) 01:11:50
成果を売れば金になるじゃん
金にならないものを翻訳するなってことだ
457デフォルトの名無しさん:2010/04/24(土) 09:54:54
llvmの読者数考えると厳しいな。
この前発売されたGC本くらいには売れるんだろうか?
>>450-453 std.time 自作してみました。 Phobosへの投稿も視野に入れております。 D言語ユーザーの皆様、もし宜しければ是非ご協力よろしくお願いいたします。
http://dusers.dip.jp/modules/forum/index.php?topic_id=66#post_id242
459デフォルトの名無しさん:2010/04/24(土) 13:48:29
d_timeとかTimeとかDateとかの相互変換はstd.conv.toに統合するのがいいのかねぇ
今見てもtoにはやりすぎ感が
460デフォルトの名無しさん:2010/04/27(火) 18:01:57
EUC-JPからUTF-8へのエンコードって標準にはやっぱりないですよね?
461デフォルトの名無しさん:2010/04/27(火) 19:17:16
どこぞにjcodeの移植が無かったっけ?
462デフォルトの名無しさん:2010/04/27(火) 22:21:50
>>461
ttp://www.wikihouse.com/sakurai/?DJcode
これですか。
自動判定版もあって便利そうですね。thx
463デフォルトの名無しさん:2010/04/29(木) 03:08:09
最新版に対応させたらupして
464デフォルトの名無しさん:2010/04/29(木) 03:09:13
wikiにね
465デフォルトの名無しさん:2010/04/29(木) 14:54:40
文字列mixinで作った関数とかってもしかしてDdocつけれない?
466デフォルトの名無しさん:2010/04/29(木) 18:10:57
色々やってみたけどつけれなかった
467デフォルトの名無しさん:2010/04/29(木) 18:26:08
bugzillaには既に登録されている
属性ともどもDDocはかなりの改修が必要な気がする
468465:2010/04/29(木) 20:23:25
>>466-467
やっぱり無理なのか。
ありがとう。
469デフォルトの名無しさん:2010/04/29(木) 21:12:01
今出来なくても将来できる事もあるから
ちょっと間空けると訳分からなくなってるわあ
470462:2010/04/29(木) 23:15:59
ttp://www.wikihouse.com/sakurai/?DJcode
dmd2.041でコンパイルできるように修正してUPしました。
471デフォルトの名無しさん:2010/04/30(金) 20:55:52
ttp://codepad.org/8MR4Q5b4
お前ら後は任せた
472デフォルトの名無しさん:2010/05/01(土) 16:11:32
>>462
473デフォルトの名無しさん:2010/05/02(日) 19:31:04
WindowsでGUIライブラリぽいの書いてるんだけど
誰か進んで人柱になってくれる変態はいる?
474デフォルトの名無しさん:2010/05/02(日) 22:45:25
>>473
全裸待機完了
475473:2010/05/02(日) 23:25:54
寝る前に見たらレスがあってびっくりだ

>>474
ttp://www.usamimi.info/~wokonomono/program/lab/negui/index.html
サンプルで使い方を感じてくれ
476デフォルトの名無しさん:2010/05/03(月) 11:13:43
おい文字コード化けてんぞ
477473:2010/05/03(月) 12:32:18
どれの?
478デフォルトの名無しさん:2010/05/03(月) 13:30:10
削除ガイドライン違反

8. URL表記・リンク
宣伝・罠・実行リンク
・明らかに宣伝を目的としたリンク・クリックや訪問で課金が発生するもの等は、宣伝掲示板以外では削除します。
479デフォルトの名無しさん:2010/05/03(月) 13:50:58
久々にガイドライン見たけど宣伝の定義がどこにも無いな
480デフォルトの名無しさん:2010/05/03(月) 13:51:19
hを削っている以上は、ただの文字列だと思うけどな
あっ作者じゃないよちなみに。
481デフォルトの名無しさん:2010/05/03(月) 14:04:54
h抜きってそういう意味だったんだ。
h抜かないとリファラ取られるのが云々言われてなんでそんなん気にしてんだろって思ってた。
482デフォルトの名無しさん:2010/05/03(月) 14:51:05
いや
h付けたURLは1スレあたりの数に制限があるので
それを回避してるだけだと思ったが
483デフォルトの名無しさん:2010/05/03(月) 14:53:45
h 付けるとクッションサイトに飛ぶから >>481 の言うリファラ云々はそもそも関係ない
どっちかっつーと ime.nu に負担掛けたくないだけだろうと
484デフォルトの名無しさん:2010/05/03(月) 15:12:40
気分の問題でなくサーバーへの負担軽減や制限を回避するためなわけですね。
485デフォルトの名無しさん:2010/05/03(月) 15:18:53
おまじないじゃなくて理由があるコードなのに
伝承されていくうちにおまじないになっていくのと似てるな
486デフォルトの名無しさん:2010/05/03(月) 15:42:03
明かに宣伝だと思うなら黙って通報すりゃいいものを
一体何がしたいんだろ
487デフォルトの名無しさん:2010/05/03(月) 16:23:04
スレのテーマに沿っててアフィも無いのに宣伝とか
488デフォルトの名無しさん:2010/05/03(月) 16:39:08
・人のやることにケチつけてストレス発散
・自分ではできないことをやられて悔しいのでとりあえず貶す
・削除ガイドラインの内容覚えたてで使いたくてたまらない
・スレの雰囲気を悪くすることによる遠回しなアンチ
ネガティブな理由しか思いつかん。
489デフォルトの名無しさん:2010/05/03(月) 16:43:35
Dに恨みのある者の犯行


え?恨み買うほど普及してない?
490デフォルトの名無しさん:2010/05/03(月) 21:56:38
2.044きたか
491デフォルトの名無しさん:2010/05/03(月) 23:15:54
Update DFL to DMD 1.059 and DMD 2.044
492デフォルトの名無しさん:2010/05/04(火) 00:58:18
!?
493デフォルトの名無しさん:2010/05/04(火) 14:37:45
2.045
494デフォルトの名無しさん:2010/05/04(火) 14:54:44
Version D 2.045 May 2, 2010
New/Changed Features

Bugs Fixed

何も書いてない。これから書くのかな?
495デフォルトの名無しさん:2010/05/04(火) 14:58:10
また何か致命的なバグがあったんかな?
変数の初期化がDEADBEEFになってるとか
496デフォルトの名無しさん:2010/05/04(火) 15:26:22
大きさ
497デフォルトの名無しさん:2010/05/04(火) 15:28:39
あっ、書けた。
D言語の勉強始めてて素朴な疑問なんだけど、
C/C++でビルドするより実行ファイルが大きい傾向があるような気がする。
(Windowsの場合、Hello worldで230kb、DFL使った簡単なGUIアプリで700kb)

これはgcとか入ってるから仕方ないって考えるべきなのかな。
まあdmdのオプションは特にチューニングしてないから、その辺で変わるのかもしれないけど。
498デフォルトの名無しさん:2010/05/04(火) 15:46:22
200KB分はGCだねぇ
499デフォルトの名無しさん:2010/05/04(火) 21:19:56
200kBはそのうち誤差になる
500デフォルトの名無しさん:2010/05/05(水) 01:44:32
GC使わないならGC削除する最適化くらいしてくれてもいいのに
OS作りたいとかいう時に絶対邪魔になる、というか、
OS作る用途ではGCなんて使えないだろうし
501デフォルトの名無しさん:2010/05/05(水) 01:52:09
DでOSを作る?
それは、OOoをasmで作る、と同義だと思う。
502デフォルトの名無しさん:2010/05/05(水) 02:50:18
DOSか
503デフォルトの名無しさん:2010/05/05(水) 19:55:00
dusers.dip.jpに繋がらん
504デフォルトの名無しさん:2010/05/05(水) 20:54:12
>503
今は繋がる。
505デフォルトの名無しさん:2010/05/08(土) 21:58:55
DFLはよくできてるけど、実用で使おうとしたらいずれWindows.Formsと同じ限界に達する。

そこでXMLで構造化することにより宣言的にGUIを設計できるようにすると便利だとおもうんだが、どうだろう。
現在、XAMLとXULを勉強中。
506デフォルトの名無しさん:2010/05/08(土) 22:06:51
Windows.Formsの限界って何?
507デフォルトの名無しさん:2010/05/08(土) 22:16:06
>>506
・GUIのデザインが直接コード化されるため、コードとデザインが分離していない
・単体では国際化に対応していない
・(Foms単体の問題ではないが)Visual Studioによるデザイナーで定義できないデザインが結構ある
508デフォルトの名無しさん:2010/05/08(土) 23:22:03
wxとかQtだとその辺どうなんだっけ?
509デフォルトの名無しさん:2010/05/09(日) 00:19:09
どっちもXMLで分離可能
サブクラス作ってカスタマイズして
それを登録してXMLで使うことも可能
510505:2010/05/09(日) 00:55:44
>>509
GTK+においてはGlade/GladeXML、QtにおいてはQt Designer/ui ファイルということでいいのかな。
どちらもXMLの書式のリファレンスがすぐには見つからなかった。

XAMLとXULでは後者のほうが概念の直交性が優れてるけど、
Tk並みのウィジェット自動生成エンジンを用意しないといけないので、
お手軽にでっち上げようとするには荷が重いな。
(その代わり、アプリの開発側はウィジェットの座標決めをほとんどやらなくていいから楽だが)

さしあたりXAMLを簡略化した実装を作ってみて、フォーラムに投げてみようかしら。
511デフォルトの名無しさん:2010/05/09(日) 01:16:33
こういうの誰か統一してこんないかなぁ
512505:2010/05/09(日) 01:58:23
作ってみたw
http://knivez.homelinux.org/~spro/d/dfl_xml.zip

さて、フォーラム行ってきます。
513デフォルトの名無しさん:2010/05/09(日) 05:41:15
>>512
はええよw
514デフォルトの名無しさん:2010/05/10(月) 02:14:10
D3マダー?
515デフォルトの名無しさん:2010/05/10(月) 08:32:03
そんなことより、出たばかりのVisual Dだ。
こいつを盛り上げていこうぜ!
コード補完やソースブラウズ機能をつければ、鬼に金棒だ!
516デフォルトの名無しさん:2010/05/10(月) 13:02:08
わりとよさげ。Descentはeclipse自体が使い慣れないせいでどうもなー。
更新追ってく楽しみもあるし、sakura+mingw32-makeでかりかりやってたけどこっち使ってみようかな。

とりあえずVC++と違ってデバッグなしで開始してもコンソールが止まってくれないのが(どうでもいいが)ちょっと不満。
517デフォルトの名無しさん:2010/05/10(月) 16:27:41
デフォでUTF-8じゃないのがめんどくさいんだけど、これはVisualDの側じゃどうにかならんのかな。
518デフォルトの名無しさん:2010/05/10(月) 16:48:32
>>517
Visual StudioはUTF-8/cp932をそれぞれ正しく読み込んで保存できるけど、
DコンパイラはUTF-8じゃないとだめだもんな。
確かに、新規作成してそのまま保存するとcp932になるようだ。
[ファイル]-[保存オプションの詳細設定]
から変更かけられるけど、毎回やるのは……。

Visual Dのソースを弄ったら直るだろうか?
519デフォルトの名無しさん:2010/05/10(月) 19:45:41
VisualDはVisualStudio2010からも使えるのか?
520デフォルトの名無しさん:2010/05/10(月) 19:48:39
>>517
Ascii圏の人が作ってるから気がつかないだけで単純なバグなんじゃないかなあ
521デフォルトの名無しさん:2010/05/10(月) 20:13:38
D3はいいから、64bit版dmdラインアップしてほしい
522デフォルトの名無しさん:2010/05/10(月) 20:28:29
>>519
入れてみれ。
523デフォルトの名無しさん:2010/05/10(月) 20:38:34
XMLを解析して独自形式(テキスト)で吐き出したいんだが、
XML読み込みとテンプレートエンジンは何を使ったらいい?
524デフォルトの名無しさん:2010/05/10(月) 22:38:46
読み込みはstd.xmlでいいんじゃね

テンプレートエンジンは…まあ頑張れ
525デフォルトの名無しさん:2010/05/11(火) 01:47:24
std.xmlはコメントのパースに失敗するから注意が必要(2.045)
526デフォルトの名無しさん:2010/05/11(火) 19:36:56
dsource.orgが落ちてるなー
527デフォルトの名無しさん:2010/05/11(火) 20:15:39
ロスじゃ日常茶飯事だぜ
528デフォルトの名無しさん:2010/05/12(水) 13:04:39
ちょっと調べてみたけど、
D言語で使い物になるテンプレートエンジンはないっぽい?
日本語圏で2件ほどあるけど、1件は仕様が不明。1件はソースコードが公開されてないっぽい。
海外ではヒットしなかった。(というかD言語関係は検索が難しい)

しょうがないので、簡単なものを自作してみる予定。
仕様はERB的なもので、テンプレートを置換してDソースを出力させ、
アプリ本体と一緒にコンパイルしてしまう仕様。
529デフォルトの名無しさん:2010/05/12(水) 19:36:53
Dとか検索しにくさが異常だよな
CとかC++くらいメジャーになるとそうでもなくなるんだけど
530デフォルトの名無しさん:2010/05/12(水) 22:51:48
C++でもC#のページが出てきてイライラすることが度々ある
C#はさっさと名前変えやがれ
531デフォルトの名無しさん:2010/05/12(水) 23:08:00
C畳とか?
532デフォルトの名無しさん:2010/05/13(木) 01:05:05
C丼
533528:2010/05/13(木) 09:45:05
とりあえず試作してみたが、テンプレートの出力がDのソースコードになる関係上、
出力結果がどうなるか制御してあげないといけないな。
そこで結局出力先のDソース自体がテンプレート構造になり……。
というのが現状。

もうちょっとマシにならないか考えているところ。
534デフォルトの名無しさん:2010/05/14(金) 21:46:46
dsource落ちすぎ
535デフォルトの名無しさん:2010/05/14(金) 21:56:52
活発度表示して欲しい
536デフォルトの名無しさん:2010/05/15(土) 00:13:51
そんなことしたら軒並みお通夜状態だってバレるからだめです
537デフォルトの名無しさん:2010/05/15(土) 01:48:41
v1.030使っているんですけどこういうのできないんでしょうか。

基底クラスのprotectedなクラスを継承
http://codepad.org/D0FdAuWy
538デフォルトの名無しさん:2010/05/15(土) 02:36:30
Xをstaticにしたら?
539537:2010/05/15(土) 02:44:23
>>538
まじだできたありがとう
540デフォルトの名無しさん:2010/05/15(土) 12:40:39
dmd 1.061 and 2.046 release
541デフォルトの名無しさん:2010/05/15(土) 12:43:56
QtDの中の人が出してたパッチはどうなったんだ?

>Bugzilla 1001: print stack trace (in debug mode) when program die
まままマジかガクガク
542デフォルトの名無しさん:2010/05/15(土) 16:03:43
yaneSDK4Dもうdmd1系でもコンパイル通らないんだな
543デフォルトの名無しさん:2010/05/15(土) 17:03:15
あれあったの0時代だろ
544デフォルトの名無しさん:2010/05/15(土) 20:16:32
0.001xとかだよな
545デフォルトの名無しさん:2010/05/15(土) 20:31:42
Winで'/'区切りのパスを使ったときにstd.path.basenameがちゃんと動かないんだけどこれいつからだろ?
以前は問題なかったような気がするんだよな
546デフォルトの名無しさん:2010/05/15(土) 22:22:25
D言語のircチャンネルで、
D2はstableじゃないけどD1と互換性のないところも多々あるんだから、
そろそろこっちでコード書いた方がいいんじゃない? って聞いてみたら、

>That's a bit like saying "only a few people use perl6? almost all people still use perl5"
(それはほとんどだれもperl6を使ってないんじゃない? ほとんどすべての人がまだperl5を使ってる、というのと似ている)
と答えられてしまった。

まだD1使うべきなのか……。
547デフォルトの名無しさん:2010/05/15(土) 22:36:21
仕様変更に合わせて毎回コードを総書き直しするくらいじゃなければ男ではない
548デフォルトの名無しさん:2010/05/15(土) 22:37:58
>>547
ほんま地獄やで
549デフォルトの名無しさん:2010/05/15(土) 23:28:42
>>547
一直線に良くなっていくならいいんだけどね。
前に使えた機能がバグって使えなくなったりとかが重なると泣きそうになる。
550デフォルトの名無しさん:2010/05/21(金) 04:22:35
アポーが買い取ってアホンの主開発言語になる夢をみた
551デフォルトの名無しさん:2010/05/21(金) 19:58:24
凄い勢いで囲い込まれるからやめてくれ
552デフォルトの名無しさん:2010/05/21(金) 21:37:00
どこに買い取られるのが一番幸せになれるんだろうか
553デフォルトの名無しさん:2010/05/21(金) 21:44:21
IBM
554デフォルトの名無しさん:2010/05/21(金) 22:19:54
よしSunに売り込もうぜ
555デフォルトの名無しさん:2010/05/22(土) 20:54:47
こんだけ仕様が不安定なイメージが染み付いた言語を誰が買ってくれるというのか
556デフォルトの名無しさん:2010/05/22(土) 21:50:22
それなら民主党に売り込もうぜ
557デフォルトの名無しさん:2010/05/23(日) 03:32:20
「途上国」の温暖化対策を支援するために12年までに官民合わせて1兆7500億円を拠出

http://www.asahi.com/politics/update/0522/TKY201005220233.html

黄砂対策で連携強化、日中環境相合意 中国へ資金協力も 2010年5月22日21時26分

 小沢鋭仁環境相と中国の周生賢・環境保護部長は22日、北海道千歳市で会談し、春先に中国大陸から飛来する黄砂対策で
連携を強めることを確認した。環境省によると、中国の環境相に当たる周部長は、日本、中国、韓国の3カ国で黄砂の発生を
抑制する対策を話し合う作業部会を、年内に中国で開くと表明。小沢環境相は、中国の黄砂対策への資金協力に前向きな姿勢を示した。

 3カ国は2006年、黄砂対策を進めることで合意。飛来状況のモニタリング(監視)と、発生抑制策の二つの課題で
共同研究を進めている。発生抑制策については、08年に1回目の作業部会が開かれたが、09年の2回目に中国が欠席、
議論が進んでいなかった。この日、周部長は会談で「隣国に迷惑はかけない」と話したという。

 これに対し、小沢環境相は、途上国の温暖化対策を支援するために12年までに官民合わせて1兆7500億円を拠出する
「鳩山イニシアチブ」の一環として、資金協力する姿勢を見せた。

 黄砂は洗濯物や車を汚すだけでなく、アレルギーなどの症状を悪化させる可能性が指摘されている。
558デフォルトの名無しさん:2010/05/23(日) 06:18:43
?
559デフォルトの名無しさん:2010/05/23(日) 10:20:58
キーワードに反応するスクリプトじゃね
560デフォルトの名無しさん:2010/05/23(日) 20:17:38
では再現性のテスト

それなら民主党に売り込もうぜ
561デフォルトの名無しさん:2010/05/23(日) 20:48:42
やめろww
562デフォルトの名無しさん:2010/05/23(日) 21:45:05
これを思い出した
ttp://labaq.com/archives/51451319.html
563デフォルトの名無しさん:2010/05/25(火) 04:12:43
わろた。
あのスクリプトに民なんとかと入ってないかなと思ったが見当たらなかった。
564デフォルトの名無しさん:2010/05/25(火) 21:23:27
D言語を勉強しようと思うがどうやって勉強した方がいいか教えてくれ
565デフォルトの名無しさん:2010/05/25(火) 21:33:37
1. Cを勉強する
2. C++を勉強する
3. 投げ出す
4.

↓後は任せた
566デフォルトの名無しさん:2010/05/25(火) 21:37:31
>>564
まずC++を勉強する。で、嫌になる。
D言語のスタートはそこからだ、頑張れ。
567デフォルトの名無しさん:2010/05/25(火) 21:44:12
C++に不満を持つことから始めないとな
568デフォルトの名無しさん:2010/05/25(火) 21:46:13
D本家の言語仕様を読めばいい
569デフォルトの名無しさん:2010/05/25(火) 22:04:11
C/C++のコンパイル速度に嫌気がさせば使ってもよい
570デフォルトの名無しさん:2010/05/25(火) 22:41:18
C/C++のコンパイル速度に嫌気がさしたのでDelphiを使いました
571デフォルトの名無しさん:2010/05/25(火) 22:51:23
C言語を勉強する。
オブジェクト指向に目覚めるが、Cでは継承がまともにできないことに気がつく。
C++言語を勉強する。
メモリ管理と多重継承と名前空間で死ぬ。
とここまでやったらD言語をやるといいな。
572デフォルトの名無しさん:2010/05/25(火) 23:38:07
>> 571
それ俺だ……
573デフォルトの名無しさん:2010/05/26(水) 00:22:10
そして
・破壊的変更
・ライブラリのポーティング
・メモリ周りはGCあるとむしろ面倒なことも多い(shared_ptrのほうがいいじゃん!
あたりが原因でC++に戻ってくるけど、
cppとhを両方書くこととかコンパイル速度あたりに、もはや自分が耐えられない身体になっていることに気づく。
一縷の望みをかけて.netに浮気をするが、結局『ネイティブコンパイル』という言葉のミリキに抗えない。

で、この辺りまでこぎ着けて、再びDスレを覗いてみて、判定に成功すればDに永住フラグが立つ。
判定基準はGUIライブラリがタイミングよく更新してるとか、IDEがちょっと使えるようになってるとか、そんなん。
574デフォルトの名無しさん:2010/05/26(水) 01:10:07
実に的確だなあ
まさにそんな感じだ俺は
575デフォルトの名無しさん:2010/05/26(水) 01:24:05
>>573
それなんて俺?
576デフォルトの名無しさん:2010/05/26(水) 07:01:37
DWTが死んでるんだか生きてるんだかわからないうちはDを使い続けるかな
577デフォルトの名無しさん:2010/05/26(水) 07:51:10
C#は配列周りやデリゲート周りが(Dと比べて)かなり不便なのがいかんとも。
578デフォルトの名無しさん:2010/05/26(水) 08:46:17
>>577
List<element> を使う。もうひとつの配列型。デリゲートの代わりにラムダ式を使う。デリゲートの本気モード。
579デフォルトの名無しさん:2010/05/26(水) 09:41:46
List<double> array;
array = new List<double>();
array.Add(1);

real[] array;
array ~= 1;

変わんないっちゃ変わんないのではあるが。
あと固定長配列が配列長込みの型にならんのも意外と不便。
拡張メソッドに相当する機能は(配列対象に限定せず)欲しいなあと思った。
580デフォルトの名無しさん:2010/05/26(水) 10:03:07
>>579
C#側の初期化コードは初期化子を使えばもっと短くなるけど、スレ違いなのでやめておく。

>>あと固定長配列が配列長込みの型にならんのも意外と不便。
そうか? そういう情報は変数側に持たせるべきだと思うんだが。
C/C++では型として厳密に区別されているにも関わらず実用上としてはほぼ同じ構文、形態で使用するので
コンパイルエラーが発生した時の対処が難しいと思う。
(特に他人のライブラリを初めて使い始めた時とか)
だからWin32などでは固定長配列は全てstructのメンバとして持たせる実装になっている。
581デフォルトの名無しさん:2010/05/26(水) 21:39:51
C++の黒魔術っぷりとエラーメッセージのわけのわからなさは凄いよな
その点Dは分かりやすくていい

全然関係ないけどいつの間にか__traits(getMember)なんてのが出来てたので
これ使えばある構造体やクラスの中のすべてのフィールドを列挙することとかできるんじゃね?と思ってやってみた

import std.stdio;
import std.traits;
void printAllMembers(T)(in T t) {
 foreach (mem; __traits(allMembers, T))
  static if (__traits(compiles, {void a(in typeof(__traits(getMember, t, mem)) t) {} a(__traits(getMember, t, mem));}))
   writeln(Unqual!(typeof(__traits(getMember, t, mem))).stringof, " ", mem, " = ", __traits(getMember, t, mem));
}
class C {
 int a = 1;
 string b = "2";
 real c = 3.0;
}
void main() { printAllMembers(new C); }


int a = 1
string b = 2
real c = 3

5行くらいで書けたwwwwwD最強杉wwwww
582デフォルトの名無しさん:2010/05/26(水) 22:05:32
その手の機能が魅力的なのは認めるが120桁くらい書いといて「5行くらいで書けた」は認めない
583デフォルトの名無しさん:2010/05/26(水) 22:47:00
@encode()
class_copyIvarList()
584デフォルトの名無しさん:2010/05/26(水) 23:47:37
標準出力にバイナリを書くにはどうすればいいですか?
どうやっても改行コードが勝手に書き換えられてしまいます
dmd 2.043
585デフォルトの名無しさん:2010/05/27(木) 02:38:00
>>584
stdout.rawWriteは?
586584:2010/05/27(木) 16:00:12
>>585
だめでした
どうやらWindowsだけのようなのでWindowsだけ直接APIを呼ぶことにします
ありがとうございました
587デフォルトの名無しさん:2010/05/27(木) 19:06:28
>>586
ちょっと待った
これでどう?

import std.stdio;
import std.c.stdio : __fhnd_info, FHND_TEXT;
extern(C) int fileno(FILE*);
void main() {
__fhnd_info[stdout.getFP()._file] &= ~FHND_TEXT;
stdout.rawWrite("1\n2\n");
}
588584:2010/05/27(木) 22:32:57
>>587
出来ました!
こんな方法があったんですね
ありがとうございました
589デフォルトの名無しさん:2010/05/27(木) 23:42:21
これバグじゃねえの
590デフォルトの名無しさん:2010/05/27(木) 23:59:54
>>589
プログラム自身からは出力先をテキストモードにすべきかバイナリモードにすべきか区別出来ないので
とりあえずテキストモードにしてるってことなんだろう。
どうせUnixじゃあ関係ない話だし。
591デフォルトの名無しさん:2010/05/28(金) 00:06:00
特に使い易くも無い上にややこしいC言語のstdioを更にラップしてるのが間違いと言いたくなるが
独自にI/Oランタイムを作るとC言語との連携で支障出るしなあ……。
ほんとにC言語は呪いやで。
592デフォルトの名無しさん:2010/05/28(金) 00:11:24
>>591
いやまさに。
C++最高ー! とか言ってる奴らがとても信じられない思いだ。

オレは大半のプログラムは軽量言語や.NET系で書いていて、
C/C++を使うのはそれで書かれたライブラリを使えるようにするために仕方なく、
という形で最後の手段にしているのに。

D言語は使えるかどうかまだ勉強中。
593デフォルトの名無しさん:2010/05/28(金) 02:54:39
C++は大好きですがstdioとiostreamは大嫌いです
594デフォルトの名無しさん:2010/05/28(金) 03:49:23
>>590
rawWriteなんだからバイナリモードにするべきじゃないのかと思ったんだけど違うのか。
595デフォルトの名無しさん:2010/05/28(金) 07:53:49
>>591
最近はLLとかでも言語独自のI/Oを用意しだしてるよね
596デフォルトの名無しさん:2010/05/28(金) 08:18:42
I/Oってなんですか?
597デフォルトの名無しさん:2010/05/28(金) 13:05:22
面接官の前で唱えると幸せになれるぞ。
598デフォルトの名無しさん:2010/05/28(金) 19:45:27
プロトタイプベースのプログラミング言語
599デフォルトの名無しさん:2010/05/28(金) 20:02:51
爆裂系呪文の最下位
600デフォルトの名無しさん:2010/05/28(金) 22:16:46
日本で最初のパーソナルコンピュータ情報誌

って、ググったらまだ発行してんのね。ある意味すげーわ。
601デフォルトの名無しさん:2010/05/29(土) 19:27:06
DFLが5月から毎月定期リリースされる
そんな夢を見たんだ
602デフォルトの名無しさん:2010/05/29(土) 20:40:18
久しぶりにまた弄ろうと思ったんですが、2系の方が1系よりも便利って感じな事ありますか?

前弄ったときなんかあったような気がしたんだけど、なんだったか忘れちまった。

603デフォルトの名無しさん:2010/05/29(土) 20:52:39
・foreach(i; 0 .. 10)とかできる
・推移的constを使える
・phobosが超強化
・普通のクロージャが使える
・__traits
・更新されるたびにコードを全面修正する歓びを味わえる

推移的constとかは逆に地獄を見る事もあるけど
604デフォルトの名無しさん:2010/05/30(日) 05:20:16
605デフォルトの名無しさん:2010/06/01(火) 01:34:25
ところでVisual Dってどんな感じでした?
606デフォルトの名無しさん:2010/06/01(火) 12:20:27
Dが着飾ったからってスマートになれる訳でもない。
607デフォルトの名無しさん:2010/06/01(火) 13:58:50
>>605
取り敢えず開発には使えるレベル。
次のリリースでコード補完機能が実装されるみたい。
608デフォルトの名無しさん:2010/06/01(火) 19:37:39
mixinで切った貼ったとかふざけた構文にも対応してるのかしら
609デフォルトの名無しさん:2010/06/01(火) 20:52:00
どうやってデバッグすりゃええの?

なんかSHGetFileInfoっていうAPIだけまともに動かないんですが・・・

610デフォルトの名無しさん:2010/06/01(火) 20:52:56
Visual Dってどうやってインストールするん?
611デフォルトの名無しさん:2010/06/01(火) 20:57:52
500で見れないや
612デフォルトの名無しさん:2010/06/01(火) 21:05:42
>>608
たぶんまだ対応してないと思うけどそんなところにスニペットはオレは使わないから無問題。
>>609
C/C++用の各種デバッガが使える。
>>610
セットアップインストーラーで配布されてるのに何を言ってるんだ君は。
613デフォルトの名無しさん:2010/06/01(火) 21:39:15
D-IDEの立場について
614デフォルトの名無しさん:2010/06/02(水) 01:43:19
Theoraみたいなもの
615605:2010/06/02(水) 01:43:35
>>607
そなのかありがとう
そろそろ趣味でやるのはDに完全移行するかー
616610:2010/06/02(水) 18:51:40
>>612
すまん、言葉足らで。
セットアップインストーラーを使った後。

VisualStudioを起動して新規プロジェクトの作成する時、
「'ConsoleAPP1.visualdproj'を開けません。このバージョンのアプリケーションではサポートされないプロジェクトの種類(.visualdproj)です。」
ってエラーが出る。

他にもツール→オプション→プロジェクトおよびソリューション→Visual D Setting を選択すると。
「このプロパティページの読み込み中にエラーが発生しました」
以外、何も出ない。

VisualDは最新版と前バージョンを試したが結果は同じだった。
VisualStudioは2008。日本語版。

もしかして、英語版じゃないとVisualDは使えないの?
617デフォルトの名無しさん:2010/06/02(水) 19:06:03
>>616
それは正しくインストールされてないな。
日本語英語関係ないよ。
618デフォルトの名無しさん:2010/06/02(水) 19:10:02
>>616
追加。どちらかというと言語じゃなくてVisual Studioのエディションを疑うべきだと思うんだが。
619610:2010/06/02(水) 21:22:00
>>618
VisualDを一度アンインストールして、再インストールしてもダメだった。

Visual Studioのエディションを疑うべきって、俺のExpressなんだが。
standard か Professional が必要って事?

一度、Expressも再インストールしてみるわ。
620デフォルトの名無しさん:2010/06/02(水) 21:23:38
>>619
そりゃあはいるわけないわ。当たり前じゃん。
Visual Studio Expressは、Visual Studioではないよ。念のため。
621デフォルトの名無しさん:2010/06/02(水) 21:27:48
>>619
http://www.dsource.org/projects/visuald/wiki/Features
公式の説明くらい読もうぜ…
622デフォルトの名無しさん:2010/06/02(水) 22:20:34
The One With D の人がExpressに入れてた気がした
623デフォルトの名無しさん:2010/06/03(木) 11:01:08
called with argument types:
(wchar*,uint,SHFILEINFOW*,uint,uint)
matches both:
dwt.internal.win32.WINAPI.SHGetFileInfoW(wchar*,uint,SHFILEINFOW*,uint,uint)
and:
dwt.internal.win32.WINAPI.SHGetFileInfoW(wchar*,uint,SHFILEINFOW*,uint,uint)

これエラーなんですかね?

624デフォルトの名無しさん:2010/06/03(木) 19:36:14
マッチするも何もまったく同じ関数に見える…
625デフォルトの名無しさん:2010/06/03(木) 20:04:19
現象を再現する最小コードキボン
コンパイラのバグかもしれないし
626デフォルトの名無しさん:2010/06/04(金) 04:03:50
DWORD SHGetFileInfoW(LPCWSTR, DWORD, SHFILEINFOW*, UINT, UINT);
DWORD SHGetFileInfoA(LPCTSTR, DWORD, SHFILEINFOA*, UINT, UINT);
version(Win32SansUnicode) {
alias SHGetFileInfoA SHGetFileInfo;
} else {
alias SHGetFileInfoW SHGetFileInfo;
}

dwt.internal.win32.WINAPIのSHGetFileInfoの箇所をこう書き換えたらちゃんと動きました。
エラー時にどういう風に記述したかは忘れちゃった><

お騒がせしました。
627デフォルトの名無しさん:2010/06/04(金) 04:11:45
それはつまり、dwtに同じ関数が2つ宣言されていたってことじゃ……
バグ報告してあげたら?
628デフォルトの名無しさん:2010/06/04(金) 07:10:08
DWTは5月半ばにパッチ投げられても放置してたような

でもaliveらしいよ
安心だね
629デフォルトの名無しさん:2010/06/06(日) 21:52:14
ttp://dblog.aldacron.net/2010/06/06/unable-to-update-derelict/
ここのところ韓国からだとdsource.orgに繋がらないらしい
ひょっとして時々dsource.orgに全然繋がらなくなるのは日本固有の問題なんだろうか?
630デフォルトの名無しさん:2010/06/07(月) 10:46:34
>>630
D言語のIRCチャンネルでdsouceはD言語で書き直せって
冗談で語られるくらいだからサーバー側の問題だよ。
日本からの海底ケーブルの品質がそんなに低いわけないだろ。
631デフォルトの名無しさん:2010/06/07(月) 10:47:37
632デフォルトの名無しさん:2010/06/07(月) 18:14:19
コンパイラスイッチ-profileでコンパイルしたexeを実行した時にできるtrace.logですが、
関数名がネームマングリングされていて読みにくいです。
なんとかする方法はないのでしょうか?
633デフォルトの名無しさん:2010/06/07(月) 19:26:37
こんなこともあろうかとstd.demangleを作っておいた
古代、こいつを使え
634デフォルトの名無しさん:2010/06/07(月) 21:22:10
http://www.kmonos.net/alang/d/2.0/phobos/std_demangle.html
普段これのサンプルそのまま使ってるなあ
635デフォルトの名無しさん:2010/06/07(月) 21:26:59
>>633
ぴったりの物がphobosにあったんですね。thx

trace.logでもう1つ気になったんですけど、文字化けの部分があるんですよね。
stdioのFileで読み込もうとするとinvalid UTF-8 sequenceが発生して面倒くさいです。
文字化けの原因は何なのでしょうか?
636デフォルトの名無しさん:2010/06/09(水) 17:18:14
debug(SHOW_MESSAGE_INFO)
っていうのをdflで見つけたんですが、これをオンにするにはどうしたらいいんでしょう?
637デフォルトの名無しさん:2010/06/09(水) 18:44:50
>>636
コマンドライン引数で
-debug=SHOW_MESSAGE_INFO
を渡すんだ!
638デフォルトの名無しさん:2010/06/10(木) 01:17:19
>>637
ありがとうございます!
639デフォルトの名無しさん:2010/06/10(木) 02:28:59
dmdの最新版でDFLを使うと落ちるんだけど誰か直してません?
640デフォルトの名無しさん:2010/06/10(木) 07:41:20
DFLの中の人が5月にリリースするって言ってたから安心して待て
641デフォルトのD言語erさん:2010/06/10(木) 07:44:46
>>640
へぇー・・・5月にリリース。
来年の5月にですね。わかります。
642デフォルトの名無しさん:2010/06/10(木) 21:40:53
std.containerが来る…

ところでインタフェースを使わずDuck Typingを使うのはいいとして
その場合「コンテナのコンテナ」みたいなのはどう表現すればいいんだ?
List!(List!(int)) listInList;
みたいなの
643デフォルトのD言語erさん:2010/06/11(金) 00:23:19
>>642
そんなかんじゃねえの。

unittest内のコード的だと、
auto listList = SList!(Slist!int);
みたいな。

つーか、dcollectionのphobos入りを否定したんだから、
早めにstd.containerをdcollection同等かそれ以上の機能を実装してもらいたい。
644デフォルトの名無しさん:2010/06/11(金) 07:10:36
>>643
全部SListならいいんだけど

listInList.add(new ArrayList!int);
listInList.add(new LinkedList!int);

みたいなのをやろうとしてはたと行き詰まったのよ
645デフォルトの名無しさん:2010/06/11(金) 16:39:43
Variantにつっこむか、適当なインターフェイス噛まして型消去かなあ
646デフォルトの名無しさん:2010/06/11(金) 18:56:37
>>643
その辺はStevenが協力してやるんじゃないかな
正直な所,考えていたのであればもっと前にstd.containerのAPIとか公開して欲しかった
647デフォルトの名無しさん:2010/06/11(金) 19:33:53
andreiだから仕方ない
648デフォルトの名無しさん:2010/06/11(金) 19:35:48
異なる型の配列とかタプルで何とかできないかと思ったが何とかできなかった
649デフォルトの名無しさん:2010/06/12(土) 16:03:16
import してるファイル内にあるクラスがなぜか
Error: identifier ** is not defined
と表示されるんですが・・・
importしても認識されない条件があるんでしょうか?

ちなみに フルパス **.**.hoge(class hoge)と指定するとエラーが消えます。
例えば
import omg.moge.hoge;

new hoge() // Error: identifier 'hoge' is not defined

new omg.moge.hoge.hoge();//エラーにならない
こんな感じです。
650デフォルトの名無しさん:2010/06/12(土) 17:05:25
>>649
そんなことならないけども
最小のサンプル見せて
651デフォルトのD言語erさん:2010/06/12(土) 19:16:14
>>649
dmd omg.moge.hoge.d は?
652デフォルトのD言語erさん:2010/06/12(土) 20:12:32
名無しは、デフォルトのD言語erさん
653デフォルトのD言語erさん:2010/06/12(土) 20:13:29
ほう
654デフォルトのD言語erさん:2010/06/12(土) 21:24:11
>>651
それはリンクまで行ってからエラー吐くと思う
>>649のエラーはdmdが吐く奴だった気がする

あれ?でも普通に見つからない場合は"undefined identifier"って言うよなぁ
655デフォルトのD言語er651さん:2010/06/12(土) 22:00:22
>>654
>>649は"undefined"を書き忘れたのかと思ったから、言ってみた。

"identifier"ってエラーは実は見たこと無いんだ。
656デフォルトの名無しさん:2010/06/12(土) 22:23:03
>>639
オレは逆にDFLのsubversion開発版を使うことでdmd2の最新版で動くようになったぞ。
657デフォルトの名無しさん:2010/06/12(土) 23:50:51
D1.0使ってます
プロパティって+=演算とかに対応してないんですか
658デフォルトの名無しさん:2010/06/13(日) 00:54:23
まだしてない
する予定はあるらしい
659デフォルトの名無しさん:2010/06/13(日) 00:55:30
あ、1.0なら今後も対応することはないか
660657:2010/06/13(日) 02:09:50
そうなんですか・・・残念
661デフォルトの名無しさん:2010/06/13(日) 05:06:42
>>656
あれー?おかしいなあ。
入れ直してみる。
662デフォルトの名無しさん:2010/06/13(日) 12:46:20
5/16のスナップショットなら2.061では動かないよって明記されてた気がするな
663デフォルトの名無しさん:2010/06/13(日) 14:30:12
>>662
2.061だと?
664デフォルトの名無しさん:2010/06/13(日) 15:15:15
dmd 2.047 update
665デフォルトの名無しさん:2010/06/13(日) 15:37:04
>>663
D1と混ざってました
生まれてきてすいません
666デフォルトの名無しさん:2010/06/13(日) 17:27:30
俺の方こそすみませんでした
667649:2010/06/13(日) 20:12:05
わかりました。
mixinを使用したファイルでもtemplate内で使用される別ファイルで定義されてる関数等は同じようにimportが必要なだけでした。
mixn使えばimportが延々と並ぶの防げるかなーとか考えてたんですが・・・・
単なる勉強不足でした。

668デフォルトの名無しさん:2010/06/13(日) 21:43:25
phobosの改訂ということで久々にマニュアルを見直してみたら、
std.range.zipとstd.range.recurrenceはD言語の象徴的機能という感じだな。
std.range.zipあたりは素でこういう機能が欲しかったという感じなので、
なんというか感動的でさえある
C++で似たようなことをやるときはインターフェースとなるクラスにはめてからこういう操作やってたが、
型情報保存済みで素で出来るようになるというのが恐ろしい
669デフォルトの名無しさん:2010/06/13(日) 22:31:29
670デフォルトの名無しさん:2010/06/14(月) 20:08:09
コンソール非表示でwriteflnで標準出力してると
Bad file descriptor例外が出るんですけど何か回避方法は無いんでしょうか。
Poseidonのオプションの[-L/SUBSYSTEM:windows:4]を使っているせいかな?
dmdのバージョンは2.039です。
671デフォルトの名無しさん:2010/06/15(火) 21:02:55
char[]型の変数に文字列を代入し、あとでファイルに書き出してみると中身が破壊(文字化け)されている事があります(代入直後に書き出せば正常)。
同じプログラムを何回も実行すると文字化けする時と正常な時があり、実行時にエラーはでません。
どういった原因が考えられるのでしょうか?
672デフォルトの名無しさん:2010/06/15(火) 21:04:58
文字コードが混在
673デフォルトの名無しさん:2010/06/15(火) 21:08:05
std.time復活の兆しがある…のか?
674デフォルトの名無しさん:2010/06/15(火) 21:40:13
>>671
その変数の中身が他所から書きかえられてるのかなぁ
単純なプログラムなら調べもつくんだろうけど
675デフォルトの名無しさん:2010/06/15(火) 21:42:35
D1なら文字列もmutableだから元の文字列が書きかえられてるのかも
代入といってもコピーされるわけじゃないから

char[] b = "test";
char[] a = b;
b[1] = '*';
writefln(a); // t*st
676デフォルトの名無しさん:2010/06/15(火) 21:50:29
>>672
代入直後なら文字化けしないので、文字コードの問題ではない気がします。
>>674
簡単なテストコード書いても再現しないんですよね。
原因を特定するのが難しいです。
>>675
すみません、ただの代入ではなく
char[] str = "ほげ".dup;
のように複製してます。
そして、strを他の配列にはコピーしてないです。
コンパイラはdmd2.041です。
677デフォルトの名無しさん:2010/06/15(火) 21:56:07
BufferedFileが渡したものをバッファにコピーしないでそのまま持ってくれるせいで
破棄されたポインタを使おうとしてハマったりとかあったけど、この場合関係なさそうだな

2.041って配列にappendしたものをGCがカウントミスって回収しちゃうバグがあったような
GC offにして試してみたらどうだろう
678デフォルトの名無しさん:2010/06/15(火) 22:17:33
>>677
まさにそれでした!
GC.disable();
としたら、何度やっても文字化けしなくなりました。

どうもありがとうございました。
679デフォルトの名無しさん:2010/06/15(火) 22:42:05
まったくD2は地獄だぜフゥハハハー
680デフォルトの名無しさん:2010/06/16(水) 05:39:12
670の人もそうだけどなんでそんな古いバージョン使ってるの?
一つ前とかなら分かるんだけど…
681デフォルトの名無しさん:2010/06/16(水) 05:46:40
Dで問題が発生したときに疑うべき順番

- DMD
- Phobos
- ユーザコード
682デフォルトの名無しさん:2010/06/16(水) 05:48:44
2.041はGCにバグがあって半月もせずに次が出たのに、なんでそんなものを未だに使ってる人がいるのか
683デフォルトの名無しさん:2010/06/16(水) 05:53:09
>>678
最新版……dmd2.047にアップ。

GC.disable(); しなくても文字化けしない。
684デフォルトの名無しさん:2010/06/16(水) 07:34:40
Previous Definition Different : _D5tango4text4Text11__T4TextTaZ4Text4Span6__initZ
ってエラーがでたんですが、何を追えばいいのかわかりません。

2回定義されてるって感じのエラーだと思うんですが、具体的にコードのどの部分かを知る方法ってないでしょうか?
685デフォルトの名無しさん:2010/06/16(水) 08:10:34
>>684
Tango……。
あんまりTangoを使うことオススメ出来ないな。

D2 + phobos はGood
686デフォルトの名無しさん:2010/06/16(水) 08:37:39
>>684
bugzillaによるとそのバグ修正されてるからTangoの環境によるのかなぁ
xfBuildのissue見てるとobjとlibで被っているとかあったけど,どれが原因かは分からんね
687685:2010/06/16(水) 08:41:40
結論、Tangoは使うな!

と思うのは俺だけじゃないはず。
688678:2010/06/16(水) 10:46:55
>>680,682,683
新しいverを入れると既存のコードのコンパイルが通らなくなって、修正するのが面倒くさくて、つい先送りに・・・。

今回も2.047にするとstd.rangeのTakeやらRetroでコンパイルエラーが発生して直し方がわかりません。
2.046なら、今作ってるプログラムは1箇所簡単な修正で済んだので、とりあえずはこれで・・・。
689デフォルトの名無しさん:2010/06/16(水) 20:16:16
D1のtangoのコードをphobosに置き換えてみたら簡潔になりすぎて吹いた
特にファイルパス周りがヤバい
std.pathは合理的だわ、std.fileへの関数の振り分け方の基準が謎だけど

でもtraitsとか使ってるとD2が欲しくなるなぁ
690デフォルトの名無しさん:2010/06/16(水) 20:45:43
そんな楽しげなD2組を指咥えてみてるD1な俺がここに
691デフォルトの名無しさん:2010/06/17(木) 04:02:50
ようやく alexandrescu の本が出たわけだが、どうよ?
ttp://www.amazon.co.jp/D-Programming-Language-Andrei-Alexandrescu/dp/0321635361
692デフォルトの名無しさん:2010/06/17(木) 04:38:19
いつのバージョン準拠なんやろ(笑)
693デフォルトの名無しさん:2010/06/17(木) 21:04:53
英語読めないんだぜ俺
694デフォルトの名無しさん:2010/06/17(木) 21:33:16
英語ちゃんと勉強しておけばよかった
695デフォルトの名無しさん:2010/06/17(木) 23:12:06
>>692
確かにな、いつのバージョンだろ(笑
この2ヶ月でけっこー大きくphobosが変わったからな。
買うの危険?
696デフォルトの名無しさん:2010/06/17(木) 23:26:26
少なくともstd.containerの使い方はわからないだろうな
697デフォルトの名無しさん:2010/06/18(金) 01:31:24
C:\dmd\dmd\bin\..\..\src\phobos\std\functional.d(176): Error: static assert "Bad binary function q{a == b}. You need to use a valid D expression using symbols a of type dchar and b of type string."
C:\dmd\dmd\bin\..\..\src\phobos\std\functional.d(179): instantiated from here: Body!(dchar,string)
C:\dmd\dmd\bin\..\..\src\phobos\std\algorithm.d(1984): instantiated from here: result!(dchar,string)

これってPhobosとdmdのバージョンがあってないんですかね?
698デフォルトの名無しさん:2010/06/18(金) 07:08:37
テンプレートに渡すパラメタを間違えただけという気も
最近のdmdは一番大元の呼び出し元も教えてくれるんだっけ?
699695:2010/06/18(金) 10:49:52
>>696
std.containerが出たのは、つい最近だかな・・・。
dcollectionをphobosに入れたくないからって、
事前予告もなしに急に出てきたし。

それにミカン・・・。

>>643
同意。
700デフォルトの名無しさん:2010/06/18(金) 19:19:47
C++をガリガリ書いてる人ですらAlexandrescu博士のコードは難解すぎると嘆いているというのに
誰ぞインタフェース部分を乗っ取って博士のコードを内側に追いやってくれないかのう
701デフォルトの名無しさん:2010/06/18(金) 19:22:54
例外ってどこで発生したかって情報もってないんですかね?
702デフォルトの名無しさん:2010/06/18(金) 19:33:21
new Exception("", __FILE__, __LINE__);
とかやらない限り無いねぇ
そして大抵は__FILE__も__LINE__も抜きに例外が投げられてる

アプリがどこで落ちたのか知りたい場合は-gオプション付きでコンパイルして
ddbg辺りで実行するなりすればいいと思う
703デフォルトの名無しさん:2010/06/18(金) 23:53:29
>>701
スタックトレースが最近入ったからそれで頑張ってくれ
704デフォルトの名無しさん:2010/06/19(土) 02:41:41
>>703
あれってなんなの?
どうすればスタックトレースを見られる?
705デフォルトの名無しさん:2010/06/19(土) 11:03:36
今のところ見たことがない
Windowsで見る方法あるの?
706デフォルトの名無しさん:2010/06/19(土) 19:27:31
パッチ見る限りLinuxだけみたいだが
707デフォルトの名無しさん:2010/06/19(土) 23:56:50
import std.stdio;
import std.date;
d_time now = getUTCtime();
d_time old = now - ticksPerSecond * 60 * 60 * 24 * 365;
writeln(toString(old), toString(now));

Wed Jun 02 14:05:44 GMT+0000 2010Sat Jun 19 14:46:13 GMT+0000 2010

1年前の日付が表示されるつもりが、17日前の日付が表示されます。
どこが間違っているのでしょうか?それともphobosのバグ?
708デフォルトの名無しさん:2010/06/20(日) 00:10:15
ticksPerSecondの型がenumデフォルトでintになってるせいで
>ticksPerSecond * 60 * 60 * 24 * 365
これがオーバーフローしてるみたいね
709デフォルトの名無しさん:2010/06/20(日) 00:22:26
>>708
なるほど。thxでした。
710701:2010/06/20(日) 21:17:07
>>703
Linuxだけっすか・・・・
711デフォルトの名無しさん:2010/06/23(水) 00:46:22
D1で改行コードCR設定のcygtermでreadlnすると
Enter入力してもreadlnから抜けない気がする
↓をコマンドプロンプトで実行するとEnter毎に!が出るけど
 cygtermだと何もでない。readlnが入力全部食ってる気がする


import std.stdio;
import std.cstream;
void main()
{
char s[];
while((s = readln()) !is null){
dout.writefln("!");
}
}


※cygterm=cygwinにteratermで接続するやつ
712デフォルトの名無しさん:2010/06/23(水) 00:50:55
↑ちなみに生のcygwinだとEnter毎に!が出る(たぶん改行コードCRLFで行ってる)
readlnは改行コードCRLF、CR、LFに関わらず一行として認識すると
書いてあった気がするのだけどCRだけだとだめなんかね
713デフォルトの名無しさん:2010/06/23(水) 13:24:38
CR+LF, LF は LF だけ判定すれば間違いないが、
CR のみ判定しようとすると、LFが来るか来ないか待たないとダメだからな。
714デフォルトの名無しさん:2010/06/23(水) 13:36:09
いや、CR のみと CR+LF 併用の場合は、
CR 見た瞬間改行扱いにして、次のLFを無視するようにすればいいか。
ただ、CR 改行って Mac でしか見たことないんだよなぁ。
715デフォルトの名無しさん:2010/06/24(木) 05:45:57
Access Violationってどんな時にでるんでしょうかね?
dwtのドラッグする時にラベルのテキスト取りにいったら落ちるんですが
char[]を返してるだけなんですよね。
多分。



716デフォルトの名無しさん:2010/06/24(木) 05:53:57
dmd1でクロージャしちゃったのが原因でした。失敬。
717デフォルトの名無しさん:2010/06/24(木) 07:21:15
dwtはTable上からドラッグしたら本当にバグで落ちたりする
718デフォルトの名無しさん:2010/06/24(木) 09:41:13
自分もdwt使ってるんですが、Treeのノードのドラッグって実装途中なんでしょうかね?
サンプルもないし、SWTのソース流用してもdragStartすら呼ばれんのですが・・・
719デフォルトの名無しさん:2010/06/24(木) 20:27:22
DWT+tango 0.99.9でやってるけど出来るなぁ
TableのはバグってるけどTreeのドラッグは修正した記憶がない
720デフォルトの名無しさん:2010/06/24(木) 21:13:26
>>719
なんかおかしな点ありますか?
Listでやるとこのままでもうまくいくんですが・・・。
int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
// Create the drag source on the tree
DragSource ds = new DragSource(tree, operations);
TextTransfer[] t ;
t ~= TextTransfer.getInstance();
ds.setTransfer(t);
ds.addDragListener(new class(tree) DragSourceAdapter {
Tree tree;
this(Tree _tree) {
this.tree = _tree;
}
void dragStart(DragSourceEvent event) {
Stdout("drag").newline;
event.doit = (this.tree.getSelection().length != 0);
}
public void dragSetData(DragSourceEvent event) {
Stdout("dragSetData").newline;
// Set the data to be the first selected item's text
auto txt = new ArrayWrapperT!(char)(this.tree.getSelection()[0].getText());
event.data = txt;
}
});
721デフォルトの名無しさん:2010/06/24(木) 21:55:13
本当だ動かない…
でも手元のプログラムのツリーではちゃんとドラッグできる
えええ何でやねん

TreeItemに画像を設定したり
DropTargetもつけてみたり
TextEditorをくっつけてみたり
してみたけどやっぱりできないな
何が違うんだ?
722デフォルトの名無しさん:2010/06/24(木) 21:59:10
-L"/su:console:5"をつけてコンパイルしたら動いた!

…何でやねん
723デフォルトの名無しさん:2010/06/24(木) 22:05:47
ほんとだ・・・
ありがとうございます!
724デフォルトの名無しさん:2010/06/25(金) 10:47:53
質問を連投してすいません。
コンストラクタでドラッグリスナーの処理を行うと落ちます。エラーメッセージは
dwt.DWTError.DWTError: Cannot initialize Drag

ですが全く同じ処理を、コンストラクタから抜けた直後に書く(関数を呼ぶ)と普通に実行出来ます。
auto tree = new CTree(shell);
tree.init(); <-ドラッグ処理
コンストラクタって何か気をつけてないといけない事があるんでしょうか?
725デフォルトの名無しさん:2010/06/25(金) 19:24:06
エラーメッセージでgrepかけたらこんなコードに行き当たった

>public this(Control control, int style) {
> super(control, checkStyle(style));
> this.control = control;
> if (control.getData(DND.DRAG_SOURCE_KEY) !is null) {
> DND.error(DND.ERROR_CANNOT_INIT_DRAG);
> }
> control.setData(DND.DRAG_SOURCE_KEY, this);

DND.DRAG_SOURCE_KEYをキーにしてデータを登録する処理が
うっかりどこかで走ってるんじゃないかなあ
726デフォルトの名無しさん:2010/06/25(金) 21:37:44
>>725
mixinで2度同じ関数が呼ばれてました・・・。
おかげでバグが取れました。ありがとうございます。
連投を重ねてすいませんが、恥をしのんであと一つお願いします><

ドラッグしたTreeItemが黒いのは、これもやはり自分のバグなんでしょうか?
画像をつけるとそこだけはちゃんとアイコンが表示されてるんですが。
727デフォルトの名無しさん:2010/06/25(金) 22:13:05
その現象にはぶつかった事がないからわからないやごめん

画像を作ってるのはTreeDragSourceEffect.getDragSourceImage()だから
その辺を調べるといいのかも
728デフォルトの名無しさん:2010/06/26(土) 05:38:57
>>727
そうなんですか・・・
>>720
で試して頂いた奴でもならなかったって事でしょうか?
となると自分の環境の問題なのかなぁ・・・

とりあえず頂いたヒントを調べてみます。ありがとうございました。
729デフォルトの名無しさん:2010/06/26(土) 16:11:16
dwtはVistaでビルドするとXPで動かなくなるような事が余裕で起こるから
環境次第で何が起きても驚かん
730デフォルトの名無しさん:2010/06/27(日) 21:46:59
int i = 0;
writeln("abcd"[i..i + 4]);// "abcd"
writeln("abcd"[i..i += 4]);// ""
これってバグですか?
731デフォルトの名無しさん:2010/06/27(日) 21:50:36
iに副作用あるけどどうなの
732デフォルトの名無しさん:2010/06/28(月) 21:49:10
structのデフォルトコンストラクタが定義できない仕様になってる理由は何ですか?
733デフォルトの名無しさん:2010/06/28(月) 21:58:18
俺、>>730 みたいなことする人と仕事したくない。
734デフォルトの名無しさん:2010/06/28(月) 22:19:22
>>730
cdecllってことでしゅ
735デフォルトの名無しさん:2010/06/28(月) 22:25:43
>>733
完全趣味で完全クローズドで未成年なのでそんなのどうでもいいです

>>734
なるほど
ありがとうございました
736デフォルトの名無しさん:2010/06/29(火) 08:08:42
>>732
構造体の配列を確保するときにデフォルトコンストラクタがあると
0で埋めるんじゃなくて要素数分コンストラクタを呼ばないといけなくなって
パフォーマンスに問題が出るから、だと思う。
737デフォルトの名無しさん:2010/06/29(火) 10:52:20
足跡
738デフォルトの名無しさん:2010/06/29(火) 18:19:01
>>736
thx
739デフォルトの名無しさん:2010/06/29(火) 19:42:43
struct A(T...) {
union {T field;}
}

A!(int, real, string) a;
a.field[0] = 0;
a.field[1] = real.nan;
a.field[2] = "aho";
foreach (f; a.field) writeln(f);

みたいなことができると今日知った
仕様書に書いてあればいいのに
740デフォルトの名無しさん:2010/06/29(火) 21:51:59
なんでunion?
741デフォルトの名無しさん:2010/06/29(火) 22:12:30
タプールとヤプールとカプールって似てるよな
742デフォルトの名無しさん:2010/06/29(火) 22:47:12
>>739, >>741
いいこと聞いた!
743デフォルトの名無しさん:2010/06/29(火) 23:03:39
>>740
最初
T field;
とやったらできなくて、だったらどうやってstd.typecons.Tuple実現できるねん
と思ってソース見たらunionがいた
744デフォルトの名無しさん:2010/06/29(火) 23:12:36
ん、できないけ?
745デフォルトの名無しさん:2010/06/29(火) 23:26:37
あれ?できた…
746デフォルトの名無しさん:2010/06/30(水) 01:00:10
できるよね?
747デフォルトの名無しさん:2010/06/30(水) 07:21:40
D1でもD2でも間違いなくできる
じゃああの時出たエラーは別の要因だったのか…

union意味ねぇ!
748デフォルトの名無しさん:2010/06/30(水) 22:45:58
749デフォルトの名無しさん:2010/06/30(水) 23:07:03
std.processのショボさは何とかならないかなぁ
標準ライブラリだけでfork-execやりたいです
750デフォルトの名無しさん:2010/07/01(木) 02:48:35
streamもね
751デフォルトの名無しさん:2010/07/01(木) 10:06:17
>>749
std.processって別ブランチで新しいの開発されてるけどいつマージされるのやら
752デフォルトの名無しさん:2010/07/01(木) 21:38:19
おお本当だ
すばらしいね
未来はバラ色だな
753デフォルトの名無しさん:2010/07/02(金) 05:28:29
実際にバラ色だったらキモいけどな
754デフォルトの名無しさん:2010/07/02(金) 19:24:43
ttp://bitprox.com/en/products_bde_index.html
Dの有償IDEとか人類史上希に見る大胆なプロダクト
755デフォルトの名無しさん:2010/07/02(金) 21:13:26
>>754
ばかな・・・
756デフォルトの名無しさん:2010/07/02(金) 21:36:40
見える、見えるぞ……苦労してカラーリングや折りたたみや補完を実装した挙句
本体のバージョンアップで全て台無しにされる未来が……
757デフォルトの名無しさん:2010/07/02(金) 21:49:35
Dの仕様変更

IDEのバージョンアップ

アップデートは有償

ウマー
758デフォルトの名無しさん:2010/07/02(金) 22:07:47
D とか Delphi とか D で始まる言語は縁起が悪いのかもなぁ
759デフォルトの名無しさん:2010/07/02(金) 22:11:57
Dylanって言語があるぞ
まだ大丈夫だ
760デフォルトの名無しさん:2010/07/02(金) 22:29:56
デバッグがまともに出来るようになるなら金出してもいい。
761デフォルトの名無しさん:2010/07/02(金) 22:44:21
DHTML
762デフォルトの名無しさん:2010/07/02(金) 22:56:11
Disk-BASIC
DOS-BASIC
は許してあげて下さい…
763デフォルトの名無しさん:2010/07/02(金) 23:02:53
ファイルパスの扱いはどうすればいいんでしょうかね?
toString16(tango)で変換した文字列渡すと指定されたモジュールが見つかりませんとかでるんですが・・・
764デフォルトの名無しさん:2010/07/02(金) 23:04:28
途中で投稿しちゃいました。

でもリテラルで直接渡すとちゃんと通るんですよね・・・。何か間違ってるんでしょうか?
765デフォルトの名無しさん:2010/07/02(金) 23:39:14
わざわざUTF-16にするってことはWindows関数に渡そうとしてるの?
766デフォルトの名無しさん:2010/07/03(土) 00:13:41
>>765
はい。自分の環境だと自動的にLPCWSTR(wchar*)になってしまうんですが、tangoの方はそっちはくれないんですよね。
767デフォルトの名無しさん:2010/07/03(土) 00:22:38
あ、すいません。処理の流れを書くのを忘れてました。
main関数からもらったパス(args[][])のargs[0]をtango.io.FilePathに渡すと
tango.core.Exception.IOException: unexpected '\' character in path: D:\declipse\workspace\xdwt\main.exe・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
というエラーが出るんで、\を/に変えて使ってるんですが、
すると上記のエラーが出てしまうんです。
768デフォルトの名無しさん:2010/07/03(土) 00:32:24
Tangoは使うな… とだけ言いたいところだけど、一応回答。
auto fp = new FilePath(standard(args[0]));
auto lpcwstr = toString16z(toString16(fp.native().toString()));
多分こんな感じじゃないか?
769デフォルトの名無しさん:2010/07/03(土) 08:33:56
>>768
うまくいきました。
ありがとうございました。
770デフォルトの名無しさん:2010/07/03(土) 15:14:02
本当だ!火星風になってる!
771デフォルトの名無しさん:2010/07/03(土) 16:39:57
!?
772デフォルトの名無しさん:2010/07/03(土) 21:04:09
・・・!?
773デフォルトの名無しさん:2010/07/03(土) 21:19:07
vm(ノーマルxp)で64BitXPでコンパイルしたExeファイルが普通に実行できてるんですが
これって正常なんですかね?

774デフォルトの名無しさん:2010/07/03(土) 21:53:08
だって32bitコンパイラしか無いし
775デフォルトの名無しさん:2010/07/03(土) 22:45:12
そうだったのか><
776デフォルトの名無しさん:2010/07/03(土) 23:38:08
今凄い勢いで64bit対応のコードが追加されてるみたいだけどね
777デフォルトの名無しさん:2010/07/04(日) 10:22:19
777ならD言語が大フィーバー
778デフォルトの名無しさん:2010/07/05(月) 22:03:05
<俺専用メモ>
dmdからFFTWを呼ぶ場合、
implibでlibfftw3-3.dllを処理したlibをリンクし、
リンケージはextern(Windows)ではなくextern(C)を使う
</俺専用メモ>
779デフォルトの名無しさん:2010/07/06(火) 07:50:28
何につかってるの?
780デフォルトの名無しさん:2010/07/07(水) 11:58:52
>>778
xml手書きするおとこの人って、、、
781デフォルトの名無しさん:2010/07/07(水) 16:42:21
enum Hoge : Fuga* {
HAGE = cast(Fuga*) 0b1,
...
}

てな感じで列挙体定義すると
Hoge.HAGE

Error: no property 'HAGE' for type 'Fuga'
って怒られてしまう。

これってDMDのバグ?
782デフォルトの名無しさん:2010/07/07(水) 18:14:31
実行時にしか決まらないポインタをコンパイル時に決まるenumで扱うこと自体間違ってるような
783デフォルトの名無しさん:2010/07/08(木) 04:43:16
>>782
ポインタの下位3ビットが0になることを利用して、
1つの値で31ビット整数とポインタ値を表現できるってやつをやろうとしてるのです。
スクリプト言語の値表現でよく使われるやつ。

で、処理系の実装上で使う特殊な定数値をenumで定義しようとして>>781のエラーにぶちあたった。

けどDにはGCがあるからポインタ直接触るのはよくないっぽいね
784デフォルトの名無しさん:2010/07/08(木) 14:20:29
>>783
ポインタで持たなければいいんじゃない?
785デフォルトの名無しさん:2010/07/08(木) 19:33:47
size_tならお断りされる理由も無いしな
それはそれとして>>781の挙動はバグな気がする
786デフォルトの名無しさん:2010/07/09(金) 21:21:40
くぱぁ
787デフォルトの名無しさん:2010/07/09(金) 22:25:13
D言語ってJavaやC++やScalaと比べてなにがいいの
788デフォルトの名無しさん:2010/07/09(金) 22:32:00
言語が選べるってステキなことだよね
789デフォルトの名無しさん:2010/07/09(金) 22:47:28
JavaとScalaはVMいるから論外
かといってC++は複雑すぎるからもうちょっと簡単にしようぜってのがD
790デフォルトの名無しさん:2010/07/09(金) 23:21:28
え?Cとの互換性を切り捨てたら
C++系言語はどこまで発展できるか検証するための
実験言語じゃないの?
791デフォルトの名無しさん:2010/07/09(金) 23:58:18
andreiが入って進化しました(^q^)
792デフォルトの名無しさん:2010/07/10(土) 00:15:11
dwtにTreeSelectionListenerが無いんですが・・・・
SelectionListenerだとなぜかTreeItem追加した時に反応するだけで
選択時には無反応です。
TreeItem選択時や、ダブルクリックに対するリスナーってどれなんでしょうか?

793デフォルトの名無しさん:2010/07/10(土) 00:32:13
あれ?選択時に反応しない?
俺のところでは(ry

DWTの場合色々と変なところで動作が食い違ってきたりするからなー
dsssとbudでビルドしたら動作が違ったり
budで-guiをつけたらClipboard#disposeで死んだり

で、仕様ではSelectionListenerで正しいはず
794名無しさん@そうだ選挙に行こう:2010/07/10(土) 07:12:06
dsssが楽なんでdsss使ってたんですが・・・
dmdとかでもやってみます。
ありがとうございました。
795名無しさん@そうだ選挙に行こう:2010/07/10(土) 08:15:41
バグありD言語って怖いな
796名無しさん@そうだ選挙に行こう:2010/07/10(土) 08:41:44
長さ0の動的配列=nullって仕様があるけど、
そのせいで複数のクラスとか構造体から同じ動的配列への参照を持たせたいときに、
単純に空配列を渡しただけじゃうまくいかない。

長さ0の動的配列を含めて、同じ配列の実装を共有するためにラッパクラス作ったんだけど、
何か他にうまい方法無いでしょうか。

class RefArray(T) {
T[] list
alias list this;
}
797名無しさん@そうだ選挙に行こう:2010/07/10(土) 18:12:06
>>795
無論饅頭こわい的な意味だな
798名無しさん@そうだ選挙に行こう:2010/07/10(土) 18:50:46
>>796
複数のクラスや構造体から参照されるってことはそういう役目があるんだろうし
適切な名前をつけてあげれば悪い方法じゃないと思うけども(RefArrayという名前は微妙)
799名無しさん@そうだ選挙に行こう:2010/07/10(土) 19:31:36
引数なしthisって引数ありthisを呼んでも必ず呼ばれる?
800名無しさん@そうだ選挙に行こう:2010/07/10(土) 20:07:41
>>799
んだね。ただし、

(A)
this () {
 this(1);
}

(B)
this (int x) {
}

のような場合、(B)から(A)は呼ばれないはず…
なんだけど、(B)をtemplate mixinしたら循環呼び出しだたわけと怒られた事がある
801名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:09:51
>>800
そうなんだ。しかし、共通の処理をthis()に入れてMixinしたろーと思ったら
this no match for implicit super() call in constructor
って出たんですが、これは何ですか?
802名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:36:52
スーパークラスに引数なしのコンストラクタが無いんじゃね?
803名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:44:36
>>802
なるほど・・・、そういえば無かった。
勉強になりました。
804名無しさん@そうだ選挙に行こう:2010/07/11(日) 19:26:02
お礼言わない奴が増えたよなw
805名無しさん@そうだ選挙に行こう:2010/07/11(日) 19:59:22
そう言われて改めて>>803を見たら涙が溢れて止まらなくなった
806デフォルトの名無しさん:2010/07/13(火) 23:59:45
関数を引数にとり、引数にとった関数を二回適用する関数を返す関数は、
ocamlでは、
 let twice f x = f (f x)
と書けるのですが、
D言語で、うまく書く方法はないのでしょうか.
807デフォルトの名無しさん:2010/07/14(水) 00:03:22
delegate使えば簡単に書けるだろうけど戻り値どうなるの?
808デフォルトの名無しさん:2010/07/14(水) 00:30:07
引数と戻り値は、delegateを使って、

T delegate(T) twice(T)(T delegate(T) f) {
  return (T x) { return f(f(x)); };
}

と書いてみたのですが、
 auto f = twice(&twice!(int));
と書くと、
 twice(T) cannot deduce template function from argument types !()(int delegate(int x) function(int delegate(int x) f))
となり、エラーがでてしまいます.
809デフォルトの名無しさん:2010/07/14(水) 00:59:03
import std.functional;
int func(int x) { return x*2; }
alias compose!(func,func) twice;
void main()
{
assert( twice(1)==4 );
}

こんな感じだろうか?>>808
810デフォルトの名無しさん:2010/07/14(水) 01:34:30
>>809
ありがとうございます.しかし、>>808の関数も、

int func(int x) { return x*2; }
void main() {
 assert(twice(&func)(1) == 4);
}

は、うまく動きますが、
 auto f = twice(&twice!(int));
とすると、>>808のようにエラーがでてしまいます.
811デフォルトの名無しさん:2010/07/14(水) 01:45:01
uint length = 2;
[0, 1, 2, 3][0..length];// Error: ScopeDsymbol using 'length' inside [ ] is deprecated, use '$' instead
なら変数のほうを見てくれよ・・・
812デフォルトの名無しさん:2010/07/14(水) 03:19:36
>>810
>>809 の compose は template なのでそういうのは無理でしょうね。
>>810 のように書くとしたら、

T delegate(T) twice(T)(T delegate(T) f){
return (T x){ return f(f(x)); };
}
void main(){
int func(int x) { return x*2; }

auto tf = twice(&func);
auto ttf = twice( twice(&func) );
assert( tf(1) == 4 );
assert( ttf(1) == 16 );
}
こんなのはいかがでしょうか?
func がデリゲートじゃないといけないのがヤルセないですが、これはそのうち改善されるらしいです。
ちなみに 809 で使った std.functional.compose でも、
alias compose!(func,func,func,func) ttf;
で関数4回適用できます。
813806:2010/07/14(水) 09:16:17
>>812
ありがとうございます.
auto f = twice(&twice!(int));
のエラーですが、 &twice!(int) の型が function なので、

import std.functional;
auto tt = twice(toDelegate(&twice!(int)));

とすれば、うまくいきました.
814デフォルトの名無しさん:2010/07/14(水) 19:36:48
delegateとfunctionの互換性制限いつ緩和されるんや…
815デフォルトの名無しさん:2010/07/14(水) 20:32:37
その辺はデリケードだから・・・
816デフォルトの名無しさん:2010/07/14(水) 21:28:00
えっ
817デフォルトの名無しさん:2010/07/14(水) 22:13:42
何?
818デフォルトの名無しさん:2010/07/14(水) 22:44:28
聞こえない
819デフォルトの名無しさん:2010/07/14(水) 23:08:56
>>815
語尾ははっきりと言いましょう
820809:2010/07/15(木) 00:48:52
あれっ!?俺、808の内容読んでなかったのか???
半分以上寝てたからなんか話がずれてますね。ごめんなさい。
でも解決してよかった。
821デフォルトの名無しさん:2010/07/15(木) 14:21:58
あほーん!(;^_^
822デフォルトの名無しさん:2010/07/16(金) 19:51:24
いつの間にかqtdのバイナリパッケージができてる

これでネイティブ描画でDLLを同梱する必要が無くてライセンスがBSDなら完璧なんだけどな
823デフォルトの名無しさん:2010/07/16(金) 21:51:50
注文多い
824デフォルトの名無しさん:2010/07/17(土) 00:14:29
仕様が完全に決まって、
IDEとしてVisual Dが出て、
「やさしいD」、「Dの絵本」なんて本がでたら勝利コース
825デフォルトの名無しさん:2010/07/17(土) 01:43:09
SAL9000でもわかるD言語
826デフォルトの名無しさん:2010/07/17(土) 13:56:31
>仕様が完全に決まって、
D is better D..
827デフォルトの名無しさん:2010/07/17(土) 14:11:00
write once, rewrite every time.
828デフォルトの名無しさん:2010/07/17(土) 15:14:34
>>824
絶  対  に 出ねーから安心しな

D#なら出るかもしれんなw
829デフォルトの名無しさん:2010/07/17(土) 17:20:27
Visual Dとか本が出る以前に
>仕様が完全に決まって、
この段階でももう無理
830デフォルトの名無しさん:2010/07/17(土) 17:33:13
>決まって、
ここが無理
831デフォルトの名無しさん:2010/07/17(土) 20:30:06
>>824
仕様が固まる前にVisual Dが出てしまっているからそのプロセスは既に無理
832デフォルトの名無しさん:2010/07/17(土) 21:12:50
『やさしいD』
Andrei Alexandrescu 著
833デフォルトの名無しさん:2010/07/17(土) 23:44:44
やさしい予感がひとつもしねえよ。
834デフォルトの名無しさん:2010/07/17(土) 23:49:41
言語の本なのにコンパイラの内側まで説明してくれるすばらしい本です
835デフォルトの名無しさん:2010/07/17(土) 23:53:40
>>834
Andreiはコンパイラには精通してないから,その辺はWalterとかDonが書きそう
836デフォルトの名無しさん:2010/07/19(月) 15:07:07
D(笑)
837デフォルトの名無しさん:2010/07/19(月) 15:49:23
笑(D)
838デフォルトの名無しさん:2010/07/19(月) 16:36:50
XD <lol
839デフォルトの名無しさん:2010/07/19(月) 16:37:13
(:D)| ̄|_
840デフォルトの名無しさん:2010/07/19(月) 18:56:53
動的配列で、
p = &a[0];
で、アドレスを取得しようとすると、
参照が指してるアドレスじゃなくて、参照自体のアドレスが返ってくるのな。
841デフォルトの名無しさん:2010/07/19(月) 19:24:59
>>840
再現しなかった@dmd 2.047

int[] a = [1,2,3,4,5];
dout.writefln("&a = %s", &a);
foreach (i; 0..a.length)
dout.writefln("&a[%d] = %s", i, &a[i]);

&a = 12FE04
&a[0] = 924CE0
&a[1] = 924CE4
&a[2] = 924CE8
&a[3] = 924CEC
&a[4] = 924CF0
842デフォルトの名無しさん:2010/07/19(月) 20:26:10
>>841
ごめん、>>840は推測で書いちまった。
俺がちゃんと検証すればいいんだけどね...

本当は、
S[] a;
S*[] d;
//中略。
b[0] = &a[0];
と、やった上で、いろいろ処理をやったら、
b[0]の値は変わってないのに、
b[0] != &a[0];
になってるバグに遭遇して、なんでだろう?と、思って。



843デフォルトの名無しさん:2010/07/19(月) 20:29:47
あ、バージョンは1.063ね。
844デフォルトの名無しさん:2010/07/20(火) 04:41:12
>>842
aの長さを変えたりとかしてreallocationが起きたんじゃない?
845デフォルトの名無しさん:2010/07/20(火) 06:36:45
長さ変えなくてもコピーGCが再配置するんじゃね?
846デフォルトの名無しさん:2010/07/20(火) 07:10:48
>>845
現状コピーGCじゃないという悲しい現実…
847デフォルトの名無しさん:2010/07/20(火) 07:46:40
未だに保守的GCなのかい?
848842:2010/07/20(火) 11:02:10
朝になって考えたら、そもそも自分の勘違いが、こういう状況にしたのかもしれない。

そもそも俺は、動的配列をこんな構造だと勝手に思ってた。
a ⇒配列の先頭アドレスを指す。
a[x] ⇒配列の実データを指す。

でも実際は、a[x]が実データなのだろうか?
どっちにしても、いきなりデータの整合性が取れなくなるのは、気分悪い・・・
849デフォルトの名無しさん:2010/07/20(火) 19:37:09
配列は

struct {
size_t length;
int* ptr;
}

という構造だとどこかで見たな
850デフォルトの名無しさん:2010/07/20(火) 19:37:25
>>848
動的配列は配列の先頭要素のアドレスと、長さからなる構造体って考えると理解しやすいかも

a = [1,2,3];
b = a; (ここで、先頭要素のアドレスと長さがコピーされる)

b.length = 5;
とかやるとaの要素が置かれている領域とは別の領域が確保され、bはそっちのアドレスを指すことになる。
結果としてaとbは全く別の配列を指すことになる。

あと、長さ0の動的配列 == nullだから
a = [];
b = a;
とした場合、aとbは完全に独立な配列で、片方の変更はもう片方に伝播しない。


動的配列は参照型って言語仕様には書かれてるけど、これを素直に解釈すると混乱のもとだと思う。
851デフォルトの名無しさん:2010/07/20(火) 19:45:11
配列の先頭アドレスは a.ptr じゃない?
a[x]は実データなはずだけど。
それと、コピーGCが再配置したとしても、b[0]のアドレスも書き換えるのではなかろうか。
一番有り得そうなのは >>844 の意見じゃないかなぁ
in-placeな関数とかプロパティとか使ったりするとそうなるかもしれない
852デフォルトの名無しさん:2010/07/21(水) 20:19:13
これは何割信じていいの?L言語とか初聞きなんだが…
ja.uncyclopedia.info/wiki/D%E8%A8%80%E8%AA%9E
853デフォルトの名無しさん:2010/07/21(水) 20:40:09
L言語知らないのか?
Lと名付けられた言語は複数あって、論理設計用のものからTCL/TKで作られたToy言語まで
どれも有名だよ?
854デフォルトの名無しさん:2010/07/21(水) 21:19:28
「ごきげんよう」
「ごきげんよう」
855デフォルトの名無しさん:2010/07/22(木) 00:05:42
ルビーのLですね、分かります。
856デフォルトの名無しさん:2010/07/22(木) 00:38:58
セキュリティモデルとかを研究するために設計されたE言語とか、
ほとんど誰も知らないような言語を並べていくと
AからZまで全部あるはず
857デフォルトの名無しさん:2010/07/22(木) 06:42:46
858デフォルトの名無しさん:2010/07/22(木) 07:22:08
検索しづらい名前にするのは言語の伝統か?
天下のGoogleですらGOなんて名前を付けちゃうし
859デフォルトの名無しさん:2010/07/22(木) 13:23:15
文字数が多くてかつ普通名詞じゃない(造語とか開発者の名前とか入ってる)と検索しやすいけど得てしてダサくなるな。
エディタの名前とか見てると特にそう思う。
860デフォルトの名無しさん:2010/07/22(木) 14:00:59
みんなちゃんとDigital Mars Dって呼んであげないから・・・
861デフォルトの名無しさん:2010/07/22(木) 20:02:25
gdcとldcの立場について
862デフォルトの名無しさん:2010/07/22(木) 20:04:57
>>857
A言語のHello, Worldは実に振るってるな
863デフォルトの名無しさん:2010/07/23(金) 01:30:24
DのHelloworldってどんなの?
864デフォルトの名無しさん:2010/07/23(金) 07:00:35
865デフォルトの名無しさん:2010/07/23(金) 19:54:43
pragma(msg, "Hello, world!");
こうだろ。
866デフォルトの名無しさん:2010/07/23(金) 20:05:30
ttp://ideone.com/DsFHk
これを応用すればhello worldの一つや二つ
867デフォルトの名無しさん:2010/07/25(日) 15:05:35
いつの間にかDFLがRC1になってた
868デフォルトの名無しさん:2010/07/25(日) 17:33:47
いつ64bit版出るか知ってる人はヒントだけでも教えてください
869デフォルトの名無しさん:2010/07/25(日) 19:48:36
ヒント:D言語
870デフォルトの名無しさん:2010/07/25(日) 20:30:11
時代の最先端を走るエレガントなD言語がどうかしましtか?
871デフォルトの名無しさん:2010/07/25(日) 21:57:36
64bit版など無意味なので出す気はないとうぉるたん自身が言っていたような?
872デフォルトの名無しさん:2010/07/25(日) 22:57:46
このところdmdのcommitログに64の文字が乱舞してる
873デフォルトの名無しさん:2010/07/25(日) 23:33:47
64bit Ubuntuではもう動いてるみたいな話がある
http://twitter.com/D_Programming/status/18467677902
874デフォルトの名無しさん:2010/07/26(月) 06:57:19
>>873
Walterも「64bit対応はそれほど難しくない」っぽいことをMLで話してたし順調っぽいね
875デフォルトの名無しさん:2010/07/26(月) 12:40:17
64bit版DMDとか諦めてたけど、現実のものになるんだな。
876デフォルトの名無しさん:2010/07/26(月) 15:01:18
64bitでもintは32bitなんだっけ?
32bitアプリをそのままコンパイルしただけじゃメモリ空間が広くなるだけ?
877デフォルトの名無しさん:2010/07/26(月) 19:23:00
size_tがulongになるとかそんな感じ
878デフォルトの名無しさん:2010/07/26(月) 22:17:54
64bit対応に関しては、C/C++の規格が酷すぎるだけだからなぁ。
D言語は最初から64bit対応が考慮されてるだけだし、あとは実装するだけ。
dmdがんばれー
879デフォルトの名無しさん:2010/07/26(月) 22:33:45
centの実装まだー
880デフォルトの名無しさん:2010/07/26(月) 22:54:17
128bit整数に対応したCPUってあんの?
realでも80bitだったよね?
881デフォルトの名無しさん:2010/07/26(月) 23:05:38
realは64bit以上で不定じゃなかったか?
882デフォルトの名無しさん:2010/07/26(月) 23:06:24
キャリーフラグはあるんだから、繰り上がり演算すればOKじゃね?
883デフォルトの名無しさん:2010/07/27(火) 06:02:39
zipコンパイル時に実行できないのかー……。
884デフォルトの名無しさん:2010/07/29(木) 22:03:10
1.0か2.0どっち覚えたほうが良いの
885デフォルトの名無しさん:2010/07/29(木) 22:11:33
1.0系について今も深く語ってる記事とかあんまり無いし2.0でいいと思う
886デフォルトの名無しさん:2010/07/30(金) 18:43:17
町でプログラマーの寄り合いがありました。次から次へ恐いものを言い合いました。
みんな恐い物を話す中で一人だけ黙っているものがいました。
Walter「おい、松ちゃん。恐いものはないのかい。」
松  「恐い! 恐いもんなんか何もないよ。」
Walter「CもC++もJavaも恐くないんかい。」
松  「そんなものは恐くないよ。・・・・」

しかし突然話すのを止めてしまった。
Walter「どうしたんだい。」
松  「恐いものを思い出しちゃった。」
Walter「それはなんだい。ぜひ教えてくれよ。」
松  「あ、新しいプログラミング言語が恐い。」
Walter「新しいプログラミング言語、そりゃどういう言語だい。」
松  「C++をベースにした言語なんだ。JavaやRubyやPythonのいいとこどりした言語なんだ。ああ思い出しただけで気持ち悪くなる。」
顔色がみるみるうちに悪くなってきた。
松「ああ、座ってられない。隣の部屋に布団をしいてくれ。」
床に入ると、とうとう毛布で顔をおおってしまいました。
これを見て、Walterは笑って、いたずらをすることにしました。
887デフォルトの名無しさん:2010/07/30(金) 18:45:34
Walterが新しい言語"D"を作り、色々な機能をもたせました。GC、CTFE、連想配列、遅延評価、契約、unittest、複素数、テンプレートなどです。
それをネットで公開し、こっそり松ちゃんのPCにインストールし、気がつくのを待ちました。
Walter「ねえ。松ちゃん。起きなよ。もうお開きだよ。」
松  「わかったよ。起きるよ。でももう新しい言語のことは言わないでくれよ。」
Walter「わかったよ。もう話さないよ。」

大きな叫び声が聞こえた。
松「うわ、新しい言語だ。みょうな機能が一杯だ。」
となりの部屋のWalterは大満足。
松「おいWalter、どうしてこんなことをするんだよ。約束しただろう。D言語こわい。D言語恐い。」
大きな声をあげれば上げるほど、Walter大喜び。
松「うわ、連想配列だ。恐い、恐い。」
 「うわ、遅延評価だ。恐い、恐い。」
 「うわ、テンプレート恐い。べんり・・。こわい・・。」

様子のおかしいのに気がついて部屋の中を覗いてみました。
Walter「うれしそうだぜ。コンパイルしてるぜ。こりゃだまされた。ねえ、松ちゃん、一体何が恐いんだい。」
松「クロージャが恐い。」
888デフォルトの名無しさん:2010/07/30(金) 19:26:35
まつもとさんが愛用してくれるなら人気爆発間違いなしだな
889デフォルトの名無しさん:2010/07/30(金) 20:01:41
なんだかD言語を使ってDLL(Cで書いてあるプログラムから呼び出す)作ってみようと思ったんだが
1.0とか2.0とかよくわからん。

普段Perl使ってて、時々Cとかに手を出すんだが、正規表現とかって充実してる?
890デフォルトの名無しさん:2010/07/30(金) 20:24:59
言語組み込みではないがライブラリで同じくらい便利に使えるよ
と仕様には書いてある
891デフォルトの名無しさん:2010/07/30(金) 20:28:24
D2の標準ライブラリには当初からあるstd.regexpと最近作られたstd.regexというモジュールが混在してる
機能は前者の方が充実してるような感じ
俺がちょっと使うくらいなら便利なんだけどPerlでバリバリやってるような人から見るとどうなんだろ
892デフォルトの名無しさん:2010/07/30(金) 21:10:21
>>890
ふむ。新しく何かとってきて組み替る必要がない 旨が仕様に書いてある のはよさそう。
でも
>モジュールが混在してる
ってよく分からんwww開発途上なのか?
893デフォルトの名無しさん:2010/07/30(金) 21:26:49
DとPhobosライブラリ作ったよ

Dがバージョン1になったよ

まだまだ色々拡張したい、とりあえず安定版をバージョン1にして
バージョン2に色々拡張していくよ

Phobos古くなってきたしTangoライブラリとして再設計するよ

Phobos捨てがたいし、混ぜちゃえ☆
(tangobosの誕生)

D言語のバージョン1とバージョン2、ライブラリのPhobosとTangoがごっちゃごちゃ ← 今ここ
894デフォルトの名無しさん:2010/07/30(金) 21:29:58
……なんだろうやっぱDは避けて素直にC++とか勉強する方がいい気もしてきたwww
895デフォルトの名無しさん:2010/07/30(金) 21:58:03
おっと、正規表現の話はD2のPhobos内だけでの混乱だから安心してくれ
GUIライブラリに到ってはもっと混乱してる上にプロジェクトの大半が崩壊してるが正規表現とは関係ないから安心(ry
896デフォルトの名無しさん:2010/07/30(金) 22:03:53
>>895
逆になんでD使ってんだよwww
897デフォルトの名無しさん:2010/07/30(金) 22:35:21
世の中にはSとMがおってだな…
898デフォルトの名無しさん:2010/07/30(金) 22:39:54
開発速度さえまともなら、ここまでにはならなかったはずなんだよ。
しかし、遅いならともかく早すぎて追いつけないって……
899デフォルトの名無しさん:2010/07/30(金) 22:47:25
SとMの間にNを置きました
だからNは少しだけ
中途半端なのです
900デフォルトの名無しさん:2010/07/30(金) 23:54:33
型とかも結構Cとかと互換性有るけど結局何が違うの?
901デフォルトの名無しさん:2010/07/31(土) 00:17:00
javaとかC#じみた文法ででネイティブバイナリを吐ける。
マクロとか無くてすっきりかっこいい。オブジェクト指向に書ける。

これでいいじゃんD言語。
902デフォルトの名無しさん:2010/07/31(土) 00:58:02
下手するとC++のより凶悪なテンプレートを備えてるというのが個人的には大きい
903デフォルトの名無しさん:2010/07/31(土) 02:21:24
DってGCあったっけ
904デフォルトの名無しさん:2010/07/31(土) 02:47:02
とりあえずまえPerlで無理矢理組んだファイル形式変換スクリプトを書き換えてる。
確かに文字列とかはCやC++よりちょっと扱いやすい印象かもしれない。
905デフォルトの名無しさん:2010/07/31(土) 02:51:12
そういえば
filename = sub(file,"\\","");
std.regexp.RegExpException: no character past '\'
これってなんで例外でるんだ?
906デフォルトの名無しさん:2010/07/31(土) 03:42:22
>>905
"\\\\"
r"\\"
`\\`
お好きなのどーぞ
907デフォルトの名無しさん:2010/07/31(土) 08:34:55
>>893 みたいな説明されたら危うく見えるな
Tangoは消える運命だしPhobosを強化してD2が今のコミュニティの方向
後Tangoが出たのってD2の前じゃないっけ?

>>903
並行GCがいつか来るよ!
908デフォルトの名無しさん:2010/07/31(土) 08:52:01
Tangoの問題は単なるライブラリじゃなくてGCとか言語のコアに近い部分も一緒に作り直そうとしたところだよな
ただのライブラリなら神だったのに
909デフォルトの名無しさん:2010/07/31(土) 13:10:31
>>906
いやそうではなくて
いま
string line[i] = r"base=C:\Program Files\hogehoge\"(末尾改行コード無し)
みたいなのだとして
string base = sub(line[i],"^base=","");
とかはうまくいったから
base = sub(base,"\\$","");
とかやろうと思ったら上手く処理できないので前述のを試してみたらエラーと。
\はなにか別の処理が要ったりするのか?
910デフォルトの名無しさん:2010/07/31(土) 14:28:43
\\が文字のエスケープで\になる
で、これは正規表現だと意味のある文字だから
それをさらにエスケープして\\\\にしなきゃならない
それか\\がエスケープされない文字列形式を使う
という意味でそ
911デフォルトの名無しさん:2010/07/31(土) 14:31:47
Dコンパイラに渡されるのは "\\$"
正規表現コンパイラに渡されるのは "\$
912911:2010/07/31(土) 14:32:52
Shift+Enterで投稿とか狂ってるだろJaneStyle

・・・途中投稿してごめんなさい吊ってきます
913デフォルトの名無しさん:2010/07/31(土) 14:38:27
>>910
ああそうか初歩的ミススマソ……
まどろっこしいな……
914デフォルトの名無しさん:2010/07/31(土) 15:11:54
>>912
お前が死んだら誰がD言語を支えるんだ!
もっと熱くなれよ!
915デフォルトの名無しさん:2010/07/31(土) 18:37:44
なんか、クラスの同期関数から、
外部の関数を呼び出したら、重くなったんだけど…
なぜだ。(D1.063)
916デフォルトの名無しさん:2010/07/31(土) 18:55:42
最小コードにしてバグ報告してみたら?
917デフォルトの名無しさん:2010/07/31(土) 19:00:52
じゃあ、最小コードにして重かったら、報告してみるか。
重くなかったら…
918デフォルトの名無しさん:2010/07/31(土) 20:43:07
日本語フォルダ・ファイル名の扱い方が分からない。
919デフォルトの名無しさん:2010/08/01(日) 01:03:00
しらねーよ
920デフォルトの名無しさん:2010/08/01(日) 07:24:59
Error: Access Violation
うわぁぁぁぁぁぁぁぁぁぁぁぁぁぁ!!!!
なんでみつかんねぇんだぁぁぁぁあああああ!!!
921デフォルトの名無しさん:2010/08/01(日) 08:22:49
>>920
そのエラーは確保してない領域(null含む)にアクセスした時に出るエラーだから、
>>920が考えてる原因、とは別の所に原因がある可能性も。
922917:2010/08/01(日) 11:24:33
最小コードにしたら、関数呼び出しが4倍くらい重いことがわかった。
・・・これどうするかねえ。
923デフォルトの名無しさん:2010/08/01(日) 12:38:13
dmdを窓から投げ捨てろ!
924917:2010/08/01(日) 12:45:19
検証用コード。
http://www.dotup.org/uploda/www.dotup.org1066114.zip.html

test1⇒ 手動でインライン展開したバージョン。
test2⇒ 関数呼び出しをしているバージョン。
test3⇒ もしやと思いforをgotoに変えたバージョン、だが特に何もなかったぜ!

関数呼び出し重すぎ。
925デフォルトの名無しさん:2010/08/01(日) 12:49:43
コー・・・ド・・・?
926917:2010/08/01(日) 12:55:01
927デフォルトの名無しさん:2010/08/01(日) 13:11:11
見たところ重い理由が無い気がするなぁ
ウォルたんに言ったら直してくれるんじゃね
928デフォルトの名無しさん:2010/08/01(日) 14:13:17
常識的に関数は重いものであると思う俺はダメ?
まあテンプレートミックスインとかにして強制的にインライン化すればいいよ
929917:2010/08/01(日) 15:04:12
>>927
英語わかんないの・・・
930デフォルトの名無しさん:2010/08/01(日) 15:19:37
ワシもじゃ、ワシもじゃみんな!
931デフォルトの名無しさん:2010/08/01(日) 16:14:19
>>920です
まじ別の場所にいた・・
ぬるぽ!
932デフォルトの名無しさん:2010/08/01(日) 16:19:01
>>931
ガッ!
バグの原因見つかって何より。 ・・・見つかったんだよね?
933デフォルトの名無しさん:2010/08/01(日) 17:01:48
そもそも1億回も関数を呼び出しておいて遅いもへったくれもないだろう…
もっと呼び出し回数を減らせるような関数を作ればいいんじゃないかなと思う。
934デフォルトの名無しさん:2010/08/01(日) 18:08:39
>>933
ライブラリリファレンスをちゃんと見たら、
四角形塗りつぶしする関数があったのは内緒だ。
935デフォルトの名無しさん:2010/08/01(日) 21:10:42
>>932
一部要素がnullになってるリストがあって
nullな要素のインデックスを覚えといて
後でそこを埋める処理書いてたんだけど
(↑効率悪いってのは気にしないでくれ・・)

覚えてたインデックスが間違ってて、
リストの要素が全てnull以外になってることを
想定してた処理で死んでた。

全く関係ない関数からretするだけでエラー落ちしてたから
意味わからず3日間悩んでたよ・・・

やっと見つかったは良かったけど今ソース中がprintfだらけなんだぜ!!
936デフォルトの名無しさん:2010/08/01(日) 21:13:28
ファイル先頭で
debug = HOGE_PRINT;
とやって
debug(HOGE_PRINT) writeln(〜〜
ってやったりするよね
937デフォルトの名無しさん:2010/08/01(日) 21:18:02
そして誕生する全行の半分がdebug(FUGA) { ... }なコード
938デフォルトの名無しさん:2010/08/01(日) 21:27:19
printfがあると大丈夫なんだけど、printf消すとなぜか落ちるとか、たまにあるよね
939デフォルトの名無しさん:2010/08/01(日) 21:48:18
それなんてC言語?
940デフォルトの名無しさん:2010/08/01(日) 21:51:01
c = a + b; /* 合計を代入 */
c = a + b; /* 念のため */
941デフォルトの名無しさん:2010/08/01(日) 22:16:52
>>935
printf()だらけあるあるwww
そして、いざデバックの為にコンパイルしようとしたら、
printf()の構文でエラーを吐くのはもっとある。

ちなみにバグを見つけるだけなら、契約の仕組みが非常に役にたつ。
俺がちょっと前に書いたプログラムは、この仕組みが無かったら、どうなっていたか分からんね。
942デフォルトの名無しさん:2010/08/01(日) 22:19:28
>>938
ねーよ。
昔の時代のことはしらねーけど。

>>940
もっと信用してあげて下さい…
943デフォルトの名無しさん:2010/08/02(月) 05:59:05
immutableなクラスのopEqualsとかtoStringってどう書けばいいの?
普通に定義すると not covariant with object.Object.opEeuals とか言われる
944デフォルトの名無しさん:2010/08/02(月) 06:44:35
>>953
immutable関係なくシグネチャ間違ってると予想。
945デフォルトの名無しさん:2010/08/02(月) 07:21:16
>>944
ソースはこんな感じ。

immutable class Hoge
{
string toString() { return "Hoge"; }
bool opEquals(Object other) { return false; }
}

コンパイル結果は
opequals.d(3): Error: function opequals.Hoge.toString of type immutable string() overrides but is not covariant with object.Object.toString of type string()
opequals.d(4): Error: function opequals.Hoge.opEquals of type immutable bool(Object other) overrides but is not covariant with object.Object.opEquals of type bool(Object o)

エラーメッセージから察するに Object に immutable bool opEquals(Object) が宣言されてないと駄目っぽい?
946デフォルトの名無しさん:2010/08/02(月) 08:12:30
うわあ……修飾によってオーバーライドできない関数ができてしまってるとか……

抜け道だけなら、immutableではない継承階層を作って、
そこでimmutable_toStringでも定義して、元のtoStringからimmutable_toStringを呼んでおいて、
Hogeではimmutable_toStringをオーバーライドするとか……試してないけど。

単にObject.toStringにimmutableを付ければいいってもんでもないよな……const他の修飾子もあるし
さあWalterタンに報告だ!w
947デフォルトの名無しさん:2010/08/02(月) 10:56:25
D2.048とD3.0マダー?
948デフォルトの名無しさん:2010/08/03(火) 05:46:33
import std.stdio;
struct A {
int value;
alias value this;
}
void main()
{
A a = {123};
if ( a==123 && a!=123 )
writeln( "???" );
}

==と!=が同時にtrueって一体どういうことなんだ?
949デフォルトの名無しさん:2010/08/03(火) 20:03:36 BE:695980229-2BP(1201)
初心者にお勧めのサイトってありますか
950デフォルトの名無しさん:2010/08/03(火) 20:21:21
やめとけこんな糞言語
C#の方が食い扶持があるぞ
951デフォルトの名無しさん:2010/08/03(火) 20:28:06
>>949
どれくらいの初心者?
とりあえずわなD
952デフォルトの名無しさん:2010/08/03(火) 20:30:43
食い扶持考えてD言語やる人とかいなくない?
953デフォルトの名無しさん:2010/08/03(火) 21:12:08 BE:231993623-2BP(1201)
>>950
Dはhellowroldをを実行したぐらい
954デフォルトの名無しさん:2010/08/03(火) 21:41:42
C系統の言語の経験があるならやっぱりわなDかねぇ
955デフォルトの名無しさん:2010/08/03(火) 21:49:33
C言語の知識と易しい英語が読めるなら本家見たほうが早い
956デフォルトの名無しさん:2010/08/03(火) 22:04:05
仕様書がリファレンス兼自慢になってるからな
957デフォルトの名無しさん:2010/08/04(水) 00:38:56
でもBNFは雑なので信用しないこと
958デフォルトの名無しさん:2010/08/04(水) 12:02:21
struct STest{
  char[128] mChar;
}
int main(){
  for(int Count = 0; Count < 1000; ++ Count){
    writefln("Count = %d",Count);
    STest[] mTests;
    for(int i = 0 ; i < 1000; ++ i){
      STest Test;
      mTests ~= Test;
    }
    mTests.clear;
  }
  return 0;
}
WindowsのDMD2.046で上記のコードでmTests.clear;のタイミングでメモリが解放されてないっぽいのですがこれはそういうものなのでしょうか。
959デフォルトの名無しさん:2010/08/04(水) 16:14:44
「解放されていない」が何を指してるのか知らないけどそういうものです
960デフォルトの名無しさん:2010/08/04(水) 16:22:22
タスクマネージャ等を見てるんだったら、D上でメモリを開放してもOSにすぐメモリを返すとは限らないからね
大抵はよほど空きが貯まらない限りは再利用のために取っとく。独自メモリマネージャを実装してる言語はみんなそう
961デフォルトの名無しさん:2010/08/04(水) 19:04:06
>>958 のような質問ってMLでもちょくちょく出るからドキュメントに書いといた方がいいんじゃなかろうか?
もう書いてあるっけ?
962デフォルトの名無しさん:2010/08/04(水) 19:49:05
CのmallocだってfreeしてもOSへは返さない方が多いので……
963デフォルトの名無しさん:2010/08/05(木) 00:04:13
OSからメモリ借りんのってそんなに重いのか・・・
964デフォルトの名無しさん:2010/08/05(木) 02:45:41
重いのももちろんだけど、空間効率も大きい。
普通は数M単位で一気に借りてきて、それを細かく切り分けて使うようになってる
965958:2010/08/05(木) 10:33:14
958の例だとメモリ1Gとか超えても解放されないのでさすがにおかしいんじゃないかと思ったのです。
structでなくclassにしてnewして配列に追加した場合はclear後に割りと直ぐGCが回収してくれるっぽく10Mとかも超えないのですが。
966デフォルトの名無しさん:2010/08/05(木) 11:08:17
>>963
重いぞ
ProcessExplorerで見るとわかるがHealAllocはexplorer.exeが担当している
タスクマネージャを立ち上げて見るとこのスレッドが起動するとCPU使用率が
100%近くまでヒゲみたいに立ち上がる
967デフォルトの名無しさん:2010/08/05(木) 11:09:30
×HealAlloc
○HeapAlloc
968デフォルトの名無しさん:2010/08/07(土) 12:37:12
dmdが萌えるあまりcygwinでkonataにシンボリックリンクしちゃってるのは
俺だけじゃないはず

$konata test.d
test.d(5): Error: cannot delete type int
こなちゃん癒される...
969デフォルトの名無しさん:2010/08/07(土) 12:42:47
それはdmdが蔑ろにされているようにしか見えないのだが
970デフォルトの名無しさん:2010/08/08(日) 12:14:05
>>966
何を言ってるのかわからんのだが、
プロセス起動時に、親プロセスがプロセス起動に必要なメモリを割り当てるという意味で使ってるのか?

プロセスが起動した後は、そのプロセス内からOSに要求だよな?
ライブラリから kernel32.dll の HeapAlloc を呼んでるはずだ。
explorer は単なる親プロセスという以外、何も関係ないと思うんだが。

>>958
外側のループの中身を別関数にすれば解放されるかと思ったがダメだった。
しかも、内側のループ回数増やしたら、メモリ不足で落ちる。
GC のチェックが new の時に呼ばれてるのかもしれない。
clear の後に core.memory.GC.collect 入れたら、とりあえず動くようにはなった。
徐々に遅くなるのは断片化のせいかね。
971デフォルトの名無しさん:2010/08/08(日) 15:28:50
structってヒープに確保するんだっけかスタックじゃなくて
内側ループ回数1000000(long)に増やしてclassでやると171MBあたりで
頭打ちしてそれから最後までメモリ量増えずに正常終了
delete入れたら13MBくらいで正常終了
structは256MB行ったあたりでめんどくなって停止させたけど
256MBとかスタック取れないよな多分

アセンブラ読める隊の出番だな >>972-975
972デフォルトの名無しさん:2010/08/08(日) 16:57:43
げ、てことはもしかして、クラスを使わないで書いてるとGC走ってないってことか……?
973デフォルトの名無しさん:2010/08/08(日) 20:17:46
structでもnew使ってポインタ管理すればGC動くと思うけど
974デフォルトの名無しさん:2010/08/08(日) 21:57:06
全く無関係の class を new する文差し込んだらまともな速度で動くようになったので、
おそらく、GC が new の時に走ってると思う。
全く new しなかったら、GCしてくれないんだろうな。
975デフォルトの名無しさん:2010/08/12(木) 00:28:05
2.048
976デフォルトの名無しさん:2010/08/12(木) 18:33:01
D1使い続けてたんだけど最近のDirectXのポーティング状況とか見てると
D2使った方がいいのかなって思う。D1でいいのないよな

どうなんだろ
977デフォルトの名無しさん:2010/08/12(木) 23:05:17
>>975
capacityなんてあったんだな

>>976
>最近のDirectXのポーティング状況
えっ?どれそれ?kwsk
978デフォルトの名無しさん:2010/08/13(金) 00:15:56
だれか肉体言語開発しろよ
979デフォルトの名無しさん:2010/08/13(金) 00:35:08
>>977
俺が見たのは「傾き指向プログラミング」ってブログの8/9の記事
テト○スのソース一式の中にDirectX9をポーティングしたものが入ってた
オリジナルっぽくてReadmeに自由に使ってOKって書いてあった。

これ見てD1使い続ける気持ちが揺らいだよ
D2ならこれって即ビルドできちゃうレベルなのかな

あと、>>138 のWindowsAPIポーティングにもDX9がこっそり入ってる。
980977:2010/08/13(金) 02:14:12
>>979
>ブログ
d3d11.dまであるのか、ってかこれ全部手書きか?作者乙!
使ってみるわサンクス

>138 のポーティング
実は以前にそこのでDirextX10のTutorialをやろうとして挫折した者なんだが、
なんか、あそこの管理者のモチベーションはいまどうなんだろうか。

DirextX9のでよければ dsource.org の DDirectX9 がD1から使えたような。
981525
std.xmlがコメントで落ちるバグ、2.047からなおってる!気づかんかった!