D言語 Part29

このエントリーをはてなブックマークに追加
1D1はオワコン
プログラミング言語 D (D Programming Language) について語るスレッドです。

■前スレ
D言語 Part27
http://toro.2ch.net/test/read.cgi/tech/1314133332/

■本家
http://www.d-programming-language.org/
http://www.kmonos.net/alang/d/ (和訳) 最終更新 2011年2月頃
http://d.puremagic.com/issues/ バグ報告

■コンパイラ
http://www.d-programming-language.org/download.html (DMD, 本家)
http://bitbucket.org/goshawk/gdc/wiki/Home (GDC, gccフロントエンド)
http://www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)

■参考URL
http://dusers.dip.jp (D言語友の会)
http://prowiki.org/wiki4d/ (Wiki4D)
http://dsource.org/ (dsource)
2デフォルトの名無しさん:2012/02/20(月) 14:07:12.79
3デフォルトの名無しさん:2012/02/20(月) 14:07:58.46
■書籍
The D Programming Language (TDPL)
D言語パーフェクトガイド ※賞味期限切れ

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

■その他関連スレ
統合開発環境Eclipseプラグイン開発QA
http://pc11.2ch.net/test/read.cgi/tech/1081517094/ (dat落ち)

"Code of the Nerds" Digital Mars C/C++
http://toro.2ch.net/test/read.cgi/tech/1044210976/
4デフォルトの名無しさん:2012/02/20(月) 14:09:10.00
URL 多すぎるのか規制がうるさい
古い奴はばっさり消毒だーーーーー
5デフォルトの名無しさん:2012/02/20(月) 20:08:27.75
hぬきで
ttpにすればいいのに
6デフォルトの名無しさん:2012/02/23(木) 01:40:10.27
http://dusers.dip.jp/modules/forum/index.php?topic_id=109#post_id413
>生成バイナリの浮動小数点計算のパフォーマンスが2.057のものと比較して大きく変わっているようです。
>2coreのx86マシンでは3倍近く上昇しましたが、一方8coreのAMD64機では半減致しました。
>共にwindowsマシンですがレジスタ周りで何かしら改修があったのでしょうか?

昔書いたベンチマークソフトの結果がまるっきり変わっててワロタ
ソースどころかパフォーマンスまで破壊的変更とは
7デフォルトの名無しさん:2012/02/23(木) 10:26:41.49
import std.stdio;void main(){ writefln();}これコンパイルすると出てくるエラーってどうしてライブラリ側でのエラーの位置なの?
8デフォルトの名無しさん:2012/02/23(木) 10:27:10.97
import std.stdio;void main(){ writefln();}これコンパイルすると出てくるエラーってどうしてライブラリ側でのエラーの位置なの?
9デフォルトの名無しさん:2012/02/23(木) 11:59:34.27
テンプレートの中で出るエラーだから

test.d(1): instantiated from here: writefln!()
これが出てる分だけマシな方だと思う
10デフォルトの名無しさん:2012/02/23(木) 15:43:34.91
import std.stdio;
enum HELLO = () => std.stdio.writeln("hello");
enum main = () => HELLO();

もう少しでこれが通りそうなんだが
11デフォルトの名無しさん:2012/02/23(木) 16:35:06.54
JavaScriptみたいに、普通の関数宣言の構文がいらない子になってきてるな……。
12デフォルトの名無しさん:2012/02/23(木) 20:51:51.97
>>10
見事な変態に育ったなぁ
13デフォルトの名無しさん:2012/02/24(金) 00:35:42.85
enumとかisとか何だよ ってたまに突っ込みたくなる
14デフォルトの名無しさん:2012/02/24(金) 00:55:30.09
15デフォルトの名無しさん:2012/02/24(金) 02:08:59.41
forkるんだ
16sage:2012/02/24(金) 08:43:23.04
>>9そうなんですか。ライブラリ側のエラーの行数が出てきてもデバッグし難いですね
17デフォルトの名無しさん:2012/02/24(金) 10:28:15.56
日本人夫婦から治療費5千万円詐取容疑 韓国人の女逮捕

韓国のソウル地方警察庁は23日、知人の日本人夫婦にソウルの病院を紹介し、実際の数倍の
治療費を夫婦に請求して約7億ウォン(約5千万円)をだまし取ったとして、韓国人の女(36)を詐欺などの疑いで逮捕したと発表した。

 同庁によると、女は宮崎県でネールアート店を経営。知り合った老夫婦に「待たずに手術を受けられる」などとソウルの病院を勧め、
昨年5月までの約1年間、病院の領収書を偽造して夫婦に請求し、差額をだまし取った疑いがある。

警察によると、女は容疑を認めているといい、ほかに被害にあった日本人がいないか調べている。
http://www.asahi.com/international/update/0223/TKY201202230625.html
18デフォルトの名無しさん:2012/02/24(金) 10:50:38.91
複数行のラムダ式が折り畳み出来ないエディタなんて
小学生までだよね〜☆
19デフォルトの名無しさん:2012/02/25(土) 17:45:11.14
class A {
static enum createInstance = () => new A();
private this() { assert(false); }
}
void main() {
auto a = A.createInstance();
}

ラムダで Singleton をやろうとしたら
コンストラクタが呼ばれないでござる
20デフォルトの名無しさん:2012/02/25(土) 18:10:53.09
enumにそんな使い方あったのか
21デフォルトの名無しさん:2012/02/25(土) 18:40:07.71
static enum createInstance = (){ return new A(); };

2.057 ではこの形をはじいている。緩和された? それともバグ?
22デフォルトの名無しさん:2012/02/25(土) 18:45:54.12
前はそれだと問答無用でdelegate(=コンパイル時値ではない)になる
今は関数部の中身によってfunctionかdelegateか判別してくれるんじゃなかったかな
23デフォルトの名無しさん:2012/02/25(土) 19:12:18.80
なるほど こんな効果もあるのか
24デフォルトの名無しさん:2012/02/26(日) 03:39:45.36
そういえばアイマスのキャラが 'Der変態' って言ってた
25デフォルトの名無しさん:2012/02/26(日) 15:41:33.37
>>24
ようやく意味が分かった
26デフォルトの名無しさん:2012/02/28(火) 11:41:43.98
いっつも構造体ポインタから当たり前のようにドットつなぎでメソッド呼び出してて
その構造体にopIndex定義して、
当たり前のようにポインタにp[i]みたいにやったらポインタ演算に間違われた
27デフォルトの名無しさん:2012/02/28(火) 14:53:04.31
28デフォルトの名無しさん:2012/02/28(火) 17:15:28.12
>>26
(*p)[i]
29デフォルトの名無しさん:2012/02/28(火) 23:58:12.51
あれ?TLS前見たときにはDあったような・・・気のせいか
30デフォルトの名無しさん:2012/02/29(水) 20:00:17.78
D2+Win32APIの勉強してたつもりが
github.com/kos-/MultiWS

DLLの共有セクションってdmdでどうやるのでしょう
31デフォルトの名無しさん:2012/02/29(水) 20:23:53.02
http://ideone.com/gGFyS
設計が悪いと思うんだけどどうすりゃいいの?
32デフォルトの名無しさん:2012/02/29(水) 23:57:26.78
>>31
1. opApplyをconstメンバ関数にする
2. Barのコンストラクタで foo = new Foo;とかする
33デフォルトの名無しさん:2012/03/01(木) 00:00:18.63
opApplyの実装しだいでforeach文自体が副作用を伴う場合もあるということか
なんかこえー
34デフォルトの名無しさん:2012/03/01(木) 03:23:53.36
>>30
shared か __gshared
ttp://www.kmonos.net/alang/d/2.0/migrate-to-shared.html#shared
と synchronized
ttp://www.kmonos.net/alang/d/2.0/statement.html#SynchronizedStatement

>>33
や、そうならないために const 付けてねっていう話では?
3531:2012/03/01(木) 21:40:58.27
自分のクラスならconst付けるだけていいんだけどphobosはそうもいかないよね
-Foo foo;
+Stream foo;
36デフォルトの名無しさん:2012/03/01(木) 22:11:33.46
むしろStream系はメンテすらされてないんじゃ・・・
37デフォルトの名無しさん:2012/03/01(木) 22:14:24.22
代わりに何を使えばいいんですか?
38デフォルトの名無しさん:2012/03/02(金) 00:24:15.69
std.regex.match("", r"^$").empty == true
になるんだけど、なんで?

Rubyだと "" =~ /^$/ でヒットするのに
39デフォルトの名無しさん:2012/03/02(金) 13:20:05.50
nothrow宣言ってなにが得するんですか?
いまいちわからないんですが・・
40デフォルトの名無しさん:2012/03/02(金) 16:30:10.00
Javaばりに投げる例外がメソッドの型として影響すれば意味があるけど、
現状ただの目安だな。
41デフォルトの名無しさん:2012/03/02(金) 17:27:49.22
>>38
goto バグ報告

>>39
TDPL によると絶対に例外を投げてはいけない処理の中で
安心してその関数を呼べることの保証

契約プログラミングの位置づけに見える
42デフォルトの名無しさん:2012/03/02(金) 17:33:40.08
なるほど契約ですか。
普段からあんまり契約文書いてなかったから分からなかったなあ
43デフォルトの名無しさん:2012/03/03(土) 21:07:42.86
配列の先頭を削除する時
a = a[1..$];
してるんだけどもっと綺麗なやり方あるます?
44デフォルトの名無しさん:2012/03/03(土) 21:10:21.34
import std.array;して
a.popFront;とか?
いややってることは、まったく変わらないんだけど
45デフォルトの名無しさん:2012/03/03(土) 22:13:27.65
>>44
dd
中見たらやってることが変わらないどころか配列名も含めて完全に一致してて吹いた
46デフォルトの名無しさん:2012/03/03(土) 23:15:47.04
リングバッファでも実装したら
47デフォルトの名無しさん:2012/03/04(日) 00:02:21.30
a[0 .. $-1] = a[1..$]; a.length -= 1;
とか?
48デフォルトの名無しさん:2012/03/04(日) 00:47:34.87
いやいや読みにくいやん読みにくくなってるやん
49デフォルトの名無しさん:2012/03/04(日) 01:37:18.66
昔のスレ読んでたら予言者発見した

D言語 Part14
http://pc11.2ch.net/test/read.cgi/tech/1184807424/211

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

void func(int delegate(int) dg);

func( (i) { return i * 2; } );
とか、願わくば
func(i => i * 2);
とか書きたい。
50デフォルトの名無しさん:2012/03/04(日) 14:51:08.23
別に予言でも何でもないような気が・・・
C# 3.0 (2007年) のラムダ式が欲しいっていう
普通のレスじゃないの?
51デフォルトの名無しさん:2012/03/04(日) 16:50:21.57
与言じゃなくて欲言
52デフォルトの名無しさん:2012/03/06(火) 21:40:01.17
急にボタンがきかなくなる現象ってなんだろう。
たくさんボタンがあって、ムービークリップもあって
きかなくなる。
マウスはヒドゥンにして、ムービークリップオブジェクトを
カスタムマウスよろしくポインタをフォローミーさせとる
なんかシンボルを作り直すと直ったりするんだけど
本当に意味不明だよ。アクションスクリプトを何度もみかえしてみても
全然変じゃないしコンパイルも通る。へんな出力もされない。
ステージによみこむときのジェイペグやジフファイルの
ファイル名が全角だったりするとバグるのだろうか?

この現象と対処方法、解決方法を上手く説明できる人おる?
53デフォルトの名無しさん:2012/03/06(火) 21:44:48.50











54デフォルトの名無しさん:2012/03/06(火) 22:08:02.23
flashはスレ違いだよ!w
55デフォルトの名無しさん:2012/03/06(火) 22:10:26.83
>>54
フラッシュのスレに誰も答えれるやついないんだよ
素人ばかりなんだ。
こまってしまったよ。
56デフォルトの名無しさん:2012/03/06(火) 22:35:16.75
ここで聞かれても
57デフォルトの名無しさん:2012/03/07(水) 00:07:37.55
最近delegateの最適化がめちゃくちゃ効いてきて参照渡しスタイルがかなり書きやすくなってうれしいな
58デフォルトの名無しさん:2012/03/07(水) 00:08:20.24
間違えた。参照渡しじゃなくて継続渡しね
59デフォルトの名無しさん:2012/03/07(水) 00:11:57.06
>>55
せめて、web制作系のスレに行こうよ・・・w
60デフォルトの名無しさん:2012/03/07(水) 17:38:11.25
>>55
flvファイルは持ってる?

推測だけど、Flash Player上でのループ処理がマウスの動きに追いつけなくて
カーソル関連の処理が飛んでしまうんじゃないかと思う

間違いなくファイル名の問題ではないと思うよ

ムービークリップをカーソルの位置に移動するのはかなり負荷が掛かってたみたいだから
61デフォルトの名無しさん:2012/03/07(水) 17:41:55.58
ここに来た目的を忘れてたw

Windows版dmdの64bit対応って今どんな状況?
早く来ないかなとワクテカしてるんだけど
情報源がそんなにあるわけじゃないから
ここに頼るしかないんだw
62デフォルトの名無しさん:2012/03/07(水) 19:30:32.62
>>59>>60
ソースをいじったり、ファイル名、インスタンス名を変えたり
ありとあらゆる方法を試して原因がわかった。

ムービークリップを構成している画像ファイルを作り直したら直った。
他の画像ファイルに置き換えたら正しく動いたから判明した。

でも別に画像ファイルが壊れてるわけではない。
その画像ファイルを同じ手順で同じRGBカラーで
同じ手順でイラストレーターで再作成するとバグる。
どうも#00ff00(緑色)を使うとバグるきがする。
これセーフカラーだよね。なんなんだよくそが!
他の色の画像ファイルなら大丈夫なんだ。

これははっきりいって
Flash CS5のバグ何じゃねえかと思う。
だって、俺のアクションスクリプト3.0のソースは
何百回みなおしても正常だったし
63デフォルトの名無しさん:2012/03/07(水) 23:03:42.91
Flaghはスパゲッティみたいな作りらしいからね
バグも色々とありそうだ

ライセンスが有効なうちにバグ報告しとくといいよ

間違ってウォルターに報告したら駄目だぞ
64デフォルトの名無しさん:2012/03/08(木) 03:52:35.63
>>61
リンカが全くといっていいほど進んでないので後何年かかるのやら
GDCのmingw64版もreal計算がコケるし自分で作った方が早い
65デフォルトの名無しさん:2012/03/08(木) 20:37:01.02
あらら…やっぱりというか何というか
自分で作れる程の技量はないしw
dmdのWindows版が64bit対応したら歓喜しちゃう所なのに
道のりはまだまだ遠いのね…残念

ありがとう
66デフォルトの名無しさん:2012/03/09(金) 01:47:32.10
UFCS きた
こんなのが書けるようになるぞ!

"aaa".map!(a=>'b')().map!(a=>'c')().array() // "ccc"
67デフォルトの名無しさん:2012/03/09(金) 02:35:13.91
きゅうべぇ「もう訳がわからないよ」
68デフォルトの名無しさん:2012/03/09(金) 07:24:28.68
変態!変態!(AAry
69デフォルトの名無しさん:2012/03/09(金) 07:28:25.16
同じようなことはunaryFunで結構前からできてたからあんまり実感ないな
70デフォルトの名無しさん:2012/03/09(金) 09:15:58.92
alias TypeTuple!() void;
71デフォルトの名無しさん:2012/03/12(月) 02:27:41.16
最後のarrayいるの?
72デフォルトの名無しさん:2012/03/12(月) 16:11:06.87
if (ch.inPattern("0-9A-F")) {
}

こういうのが書けるようになるのはほんのり気持ちいい

>>71
array() なしでは生きていけない
73デフォルトの名無しさん:2012/03/12(月) 18:57:15.30
関数型言語のゴチャゴチャスレが2つほど立ってるが
取り合えずpureがあるDが勝ち組
74デフォルトの名無しさん:2012/03/12(月) 23:08:03.80
>ch.inPattern
「chinpoたん」に見えた。新キャラかと思った・・・
75デフォルトの名無しさん:2012/03/13(火) 08:23:52.63
ch.インポたん?
76デフォルトの名無しさん:2012/03/13(火) 16:01:09.44
lispのsexpが羨ましい今日この頃
77デフォルトの名無しさん:2012/03/14(水) 18:22:27.81
VisualD 0.3.31
78デフォルトの名無しさん:2012/03/14(水) 18:38:25.46
>>77
GDCと64bit サポートか・・・人によってはうれしいかも

mago debugger の機能強化ってどうなんかね。使ってる人いるのか?
79デフォルトの名無しさん:2012/03/16(金) 02:28:11.79
dmdでまだ形すら見えてこない64bitビルドに
GDC経由でMinGWを叩くことで対応するとは…
80デフォルトの名無しさん:2012/03/17(土) 00:50:28.80
81デフォルトの名無しさん:2012/03/17(土) 01:29:38.69
boostのspiritみたいなやつ?
82デフォルトの名無しさん:2012/03/20(火) 23:11:39.08
最近なんかあった?
83デフォルトの名無しさん:2012/03/21(水) 00:24:52.76
2.059
言語としての完成度は結構仕上がってきてる感がある
84デフォルトの名無しさん:2012/03/21(水) 01:46:30.75
toString とか opEquals とかに const pure をつけて
既存のライブラリを皆殺しにする計画の進展はいかに?
85デフォルトの名無しさん:2012/03/21(水) 01:49:26.27
なにそのワクワク破壊計画。胸が高鳴る。
86デフォルトの名無しさん:2012/03/21(水) 02:26:35.63
てか Sea of errors は改善されたのかのう
邪魔すぎて trunk 使う気にならない

あのまま 2.059 リリースとかになったら泣きわめく
87デフォルトの名無しさん:2012/03/21(水) 07:26:04.04
海外でも破壊的変更に心躍らされるマゾばかりなのだろうか
88デフォルトの名無しさん:2012/03/21(水) 13:30:01.37
破壊的変更をにくむ正義の心と
Dに愛想を尽かさないやさしい心を併せ持った
ヒーローはいるのだろうか
89デフォルトの名無しさん:2012/03/21(水) 13:40:54.74
これ以上絶対壊れないように、と、完全な言語仕様を作ろうとしているヒーローならいると思う。
90デフォルトの名無しさん:2012/03/21(水) 17:23:59.67
むしろ破壊による再生を司る魔王のような
91デフォルトの名無しさん:2012/03/21(水) 18:09:41.69
Destruction
Destroy

結論
名前が悪い
92デフォルトの名無しさん:2012/03/21(水) 20:37:19.54
おいおい、いまはDisruption的変更の時代だぜ?
93デフォルトの名無しさん:2012/03/21(水) 22:20:38.28
全ては Dead-on (完璧な) 言語になるために
94デフォルトの名無しさん:2012/03/21(水) 22:58:45.21
Dirty Deeds Done Dirt Cheap
95デフォルトの名無しさん:2012/03/21(水) 23:12:26.98
D@M*'D
96デフォルトの名無しさん:2012/03/21(水) 23:13:55.34
>>95
なにこれ絶望しかない

 despair
 絶 望 !?
97デフォルトの名無しさん:2012/03/21(水) 23:25:54.89
2.059のchange logリンクがあるのに実物がないのはどういうこと?
98デフォルトの名無しさん:2012/03/21(水) 23:49:17.80
>>97
モノはない 出るのは一ヶ月くらい先

ページを自動生成するときの都合か何かでおかしなことになってる
苦情は出てるけどなかなか直らん
99デフォルトの名無しさん:2012/03/24(土) 10:07:59.69
ねぇもっとD言語の話しようよ
100デフォルトの名無しさん:2012/03/24(土) 20:52:55.54
話題があれば食いつく用意はあるんだが。
まあ更新ない時はまったりしてんのもこのスレらしくてよろし。
101デフォルトの名無しさん:2012/03/24(土) 22:29:44.66
破壊が来たら盛り上がるよね
102デフォルトの名無しさん:2012/03/25(日) 19:27:35.68
一部のマゾが盛り上がる陰で幾人もの同志が静かに去っていく
103デフォルトの名無しさん:2012/03/25(日) 19:55:17.27
M言語に改名しようぜ
104デフォルトの名無しさん:2012/03/26(月) 19:21:22.66
やっぱDが入ってないと…
ドM言語でいいんじゃないかな
105デフォルトの名無しさん:2012/03/26(月) 20:34:08.46
DさんはSだからドS言語だと何度
Go-D言語
God言語
enum hello = ( ()=>writeln("hello") )();

これが通るようになればいろいろと楽しそうなんだが
コンパイル時にhelloって表示されたいってこと?
ちなみにこれは通る

enum a = (()=>0)();
>>110 ではつまらないから
アウトプットの出る処理は書けないかな〜、と
コンパイルタイムIOか
andrei辺りがなんか言ってたとかそういう噂を聞いたという話を聞いたことがある
Windowsでパスに日本語が入ってるとstd.stdio.Fileが使えないんですが、
何か対処法は用意されてますか?
fopenにstringそのまま渡してんのか・・・アホすぎる
std.stream.Fileはちゃんとしてんのに
というわけなので自分でsjisに変換(std.windows.charset.toMBSz)してやらんと無理っぽい
ありがとうございます。
auto file = File(to!string(toMBSz(filename)));
そしてバージョンアップで直っててバグると
{
auto newComer = new Developer("今日からD言語始めます!");
}
newComerはガベージコレクト対象となります
D言語のおいしいとこかいつまんで教えてください
仕様変更に強いプログラマになれるよ!
配列と文字列が簡単に扱える C言語
それ以上を期待しなければ健康でいられる
理不尽なほど強力なテンプレート
最悪なほど凶悪なCTFE
慣れたが最期のスコープガード文
2.059のbetaが出てるけど、試した人いる?
どこからDLできるのか知らんけど

disruptive change とやらは結局不発に終わるのか
>>123 を探しにいったはずなのに

Github の dmd download に
なぜか Win用の curlライブラリ一式を発見するなど
Winでわざわざcurl使うってすげーー
main を省いて モジュール単体でコンパイル〜unittest実行ってできると
うれしいんだが
すべてのモジュールのmain関数をstatic this()を呼ぶのと同じ順序で言語が自動的に全部呼び出すとかどうすか
どうすか
>>129
よくわからん・・・mainを書かなくても暗黙的に追加されるってことかな?

Ruby みたいに ライブラリを1ファイルごとに実行したいの
scconfとdruntime に細工をかますだけでいけるかな
>>130
version(unittest){ void main(){} }
じゃだめですか
ファイル1個で走らせるときと
ライブラリ単位で走らせるとき

切り替えるのにいちいちソース書き換えてる状態なのよね

main.obj+Makeコマンド自動生成するのが近道だけどめんどい
一瞬
unittest { void main(){} }
に見えてぎょっとしたけどさすがに無理がある
134営利利用に関するLR審議中@詳細は自治スレへ:2012/04/07(土) 18:40:22.89
D言語のAndroidの開発環境ってある?
ARM版gdcがHello World出せるようになった所
マジかよすげぇな
まあgccのバックエンドがあるならさもありなん
でもD1なんでしょう?
template A(string name)
{
const char[] A = "struct " ~ name ~ "{int a;}";
}
mixin(A!("S"));

は通るのに

mixin(const char[] B = "struct AA{int a;}");

は通らないのはなぜですか?
まず、
const char[] A = "struct " ~ name ~ "{int a;}";
こいつは文字列リテラルとしては扱われない

しかしDのテンプレートはメンバがたかだか一つのメンバを持ってる場合、
そのメンバそのものみたいに振る舞うという性質がある
だから文字列リテラルAそのものみたいにtemplate Aが使える

んだよね?
>しかしDのテンプレートはメンバがたかだか一つのメンバを持ってる場合
そうではなく、
そのテンプレートと同名のメンバは、名前の参照を省略できる。
mixin(A!("S")); は
mixin(A!("S").A);
の省略形でしかない。
>>138の答えにもなるかな
141140:2012/04/08(日) 16:49:48.82
なんか不安になって公式見たらメンバが一つであることも条件みたいに書いてあって焦ったけど、
手元で試したらなんかそうでもないっぽい・・・
>>139-141
なるほどこうなるんですね
mixin("struct S{int a;}");
mixin("struct AA{int a;}");

納得しましたありがとうございます。
>>140-141
メンバ一つに限るっていう条件は 2.058 で外れたとかどこかで見たような

Eponymous Template っていうらしい
>>143
知らんかった…
俺の知識が1.0時代で止まってる
もうhello, world!も書けないな

>>140
補足Thx
D言語の破壊的変更以上に現代では女子高生が自慰をネット配信してたりすることに驚いている今日この頃
色々たまってるんでしょうね
早く次バージョン来ないかなぁ
enum HOGE : string{ H = "hoge" }
これ、-g つけると通らないんだな。
enum HOGE = "hoge";
は通るのにさ。
あ、それバグだったのか!?
なんてこったい
148営利利用に関するLR審議中@詳細は自治スレへ:2012/04/11(水) 13:58:26.10
memcmp実装しようと
int memcmp(void* p1, void* p2, size_t n){

if(*p1 != *p2){


ってやると no value とかなんとか怒られるんだけど
149片山博文MZボット ◆0lBZNi.Q7evd :2012/04/11(水) 14:21:39.04
まずvoidはサイズがない型なので、void*をunsigned char*などにキャストしないといけない。
int memcmp(void *p1, void *p2, size_t n)
unsigned char *pb1 = (unsigned char*)p1;
unsigned char *pb2 = (unsigned char*)p2;
for(; n--; pb1++, pb2++) if (*pb1 != *pb2) return (int)*pb1 - (int)*pb2;
return 0;
}
ここはCスレになりました
つ import core.stdc.string;
void*とか、テンプレート涙目。
>>149
dmdが発狂したぞ

>>151
druntimeからCのコードを排除したいのですよ
unsigned charをubyteに変えてキャストの前にcastってちゃんとつければ使えると思うよ
CTFE ってこんなにひどいレベルだったのか・・・ぐぬぬ
http://d.puremagic.com/issues/show_bug.cgi?id=6498
コンパイルが通る奇跡に感謝しないと
遅いのならともかく out of memory とかw
本当に「コンパイラを作るのが比較的簡単な言語」なんだろうか
当初の売り文句のかなりの部分が反故にされてると思う
ウォルたん「ね、簡単でしょう?」
161デフォルトの名無しさん:2012/04/11(水) 20:30:27.61
もう一度原点に立ち返るべき
162デフォルトの名無しさん:2012/04/11(水) 20:50:23.38
(int main (((array string) args)))
163デフォルトの名無しさん:2012/04/12(木) 13:19:34.64
OK: foreach (l; File(fname).byLine()) { }
NG: foreach (i, l; File(fname).byLine()) { }

下の場合は opApplyをもってないとダメになるみたいだが
これってバグだよな?
164デフォルトの名無しさん:2012/04/12(木) 16:11:24.98
>>154
なんで気づかなかったんだろうってくらいに普通に動いたありがとう
165デフォルトの名無しさん:2012/04/12(木) 17:32:31.78
>>163
仕様通りやん。

ライブラリにopApplyが定義されてないのがバグだって言うならそうだけど。
166デフォルトの名無しさん:2012/04/12(木) 18:44:39.80
std.conv.parseで16進数文字列から数値に変換できるのか…
今更知った。
167デフォルトの名無しさん:2012/04/12(木) 19:47:18.96
this = null;
168デフォルトの名無しさん:2012/04/13(金) 02:35:58.51
プロセス間で変数を共有するのってsharedでできますか
無理すよね
169片山博文MZボット ◆0lBZNi.Q7evd :2012/04/13(金) 14:04:09.45
誰かD言語用のパーサジェネレータ作ってください。
170デフォルトの名無しさん:2012/04/13(金) 14:23:16.24
たぶんコンパイラのソースからぶっこぬいて
ライブラリ化するのがいちばん近道
171デフォルトの名無しさん:2012/04/13(金) 14:33:18.67
パーサじゃなくてパーサジェネレータじゃね?
まあD言語を解析できるパーサを出力できるようにするには似たようなもんか
172デフォルトの名無しさん:2012/04/13(金) 18:38:10.38
173デフォルトの名無しさん:2012/04/13(金) 18:46:41.69
>>163
byLineはrangeを返すので、インデックス付きforeachはそのままでは不可能
どうしても欲しいならzip,sequenceと組み合わせて

import std.stdio, std.range;
void main()
{
 auto lines = File(__FILE__).byLine();
 auto naturals = sequence!"n+1"(); // 自然数の無限レンジ
 auto indexedLines = zip(naturals, lines);
 foreach (i, ln; indexedLines) { writefln("%d: %s", i, ln); }
}
174デフォルトの名無しさん:2012/04/13(金) 18:54:09.89
>>166
std.conv.toは基本的に
・非文字列な値から文字列への変換:std.format.formatValueを使う
・文字列から非文字列な値への変換:std.conv.parseを使う
・その他安全なキャスト的な機能
を提供する。
175デフォルトの名無しさん:2012/04/13(金) 18:57:40.58
>>168
sharedは1つのプロセス内のスレッド間で値を共有するために使う
プロセス間での共有は…std.mmfileかなあ
ごめん、自分は使ったこと無いので使えるかどうかは不明
176デフォルトの名無しさん:2012/04/13(金) 19:47:37.63
よくFile(__FILE__)とか思いつくなあ
177デフォルトの名無しさん:2012/04/13(金) 20:00:27.77
>>173のZipってopApply持ってないのに
どうやってタプルなforeachに対応してるの?
178デフォルトの名無しさん:2012/04/13(金) 20:20:21.62
opApplyに対するforeachじゃなくてrangeメソッドに対するforeachにすり替えられているから
179デフォルトの名無しさん:2012/04/13(金) 22:08:43.13
2.059
180デフォルトの名無しさん:2012/04/13(金) 22:42:11.56
DAMASARETA!
181デフォルトの名無しさん:2012/04/13(金) 23:15:50.64
change log 長すぎ
182デフォルトの名無しさん:2012/04/14(土) 00:13:48.83
ほぼすにDのパーサ入れればいいのに
183デフォルトの名無しさん:2012/04/14(土) 00:31:49.13
DWT2の修正してたらtoHash()の仕様変更で詰んだ
nothrowじゃないとあかんのか…
184デフォルトの名無しさん:2012/04/14(土) 01:05:19.58
disruptive の片鱗に過ぎない
185デフォルトの名無しさん:2012/04/14(土) 03:18:53.25
bugzillaの長さが…
D言語が完成されてきていいのか
186デフォルトの名無しさん:2012/04/14(土) 03:44:09.38
たくさん書き直したからその分大量にバグっただけとも言う
187デフォルトの名無しさん:2012/04/14(土) 18:00:58.75
unittestするのにrdmd使うのが便利だと最近知った

ずっと
 dmd --unittest -run Dソースファイル
って感じでunittestしてたけど、いちいち空のmainを用意しなきゃならんときがあったりして面倒だったが、rdmd使えば
 rdmd -unitttest --main Dソースファイル
で勝手に空のmainを追加してコンパイル→unittest実行ができる

188デフォルトの名無しさん:2012/04/14(土) 18:07:12.08
"キタ----!".writeln;
189デフォルトの名無しさん:2012/04/14(土) 18:09:10.55
おお、これだよ、これ >>187
>>128 でほしいと思ってたのは・・・!
190デフォルトの名無しさん:2012/04/14(土) 18:39:44.18
そんなのがあったのか!
191デフォルトの名無しさん:2012/04/14(土) 19:16:45.96
ちっ

echo "void main(){}" | rdmd
192デフォルトの名無しさん:2012/04/14(土) 19:44:47.09
どうしてDownloadsのとこは更新されないの?
193デフォルトの名無しさん:2012/04/14(土) 20:37:14.42
194デフォルトの名無しさん:2012/04/14(土) 23:01:52.85
2.0 changelog
Version D 2.059 Apr 12, 2012
195デフォルトの名無しさん:2012/04/15(日) 01:52:34.10
Change Logの方は更新されてるのに↓は更新されてない

ttp://www.digitalmars.com/d/download.html
196デフォルトの名無しさん:2012/04/15(日) 02:02:27.47
なるほど古いページを見てるのか
>>1 のリンクは既に修正済みだというのに
197デフォルトの名無しさん:2012/04/15(日) 02:05:44.00
こんなこと言っちゃいけないかもしれないけど
http://www.kmonos.net/alang/d/ ここのDownload D!ってのクリックしたんじゃないかな?
198デフォルトの名無しさん:2012/04/15(日) 02:28:33.63
本来古いページは全部リンク転送されてるはずだから
>>195 がそのまま見れるのはバグといっていい
199デフォルトの名無しさん:2012/04/15(日) 04:10:10.11
>>197
名推理
200デフォルトの名無しさん:2012/04/15(日) 14:27:29.66
【急募】D言語の歌
201デフォルトの名無しさん:2012/04/15(日) 15:28:27.39
BSDの歌からBSを抜けばよい
202デフォルトの名無しさん:2012/04/15(日) 16:57:14.20
>>200
D言語好きは だいぶお利口♪
F#好きより いくらかCOOL♪
そこまで現実わかっているなら♪
もうひと頑張りでーす♪
203デフォルトの名無しさん:2012/04/15(日) 17:19:00.35
T*からref Tへの暗黙変換ってできないんですか?
204デフォルトの名無しさん:2012/04/15(日) 18:59:50.75
OpenGLの関数とかはDからはかなり扱いづらい
205デフォルトの名無しさん:2012/04/15(日) 20:24:14.61
>>204
具体的にどのあたりが?
206デフォルトの名無しさん:2012/04/15(日) 22:42:39.34
>>205
glShaderSourceとかの型まわり
OpenGLに限らずreadonlyなのにconstついてないCの関数とかはtoStringz使おうにもcastが要る
207デフォルトの名無しさん:2012/04/15(日) 23:37:32.43
>>200
何もかもをほしがってた
子どものころのままでいられたらいいのに

でもそろそろ父さんのくれた
真っ黒な手袋とさよならしなくっちゃ

飛ばすぜ! GCのペダル踏み抜いて
VM車なんかにゃ行けないあの空目指すんだ

この先、何度転んだって
誰にも止められやしないさ
208デフォルトの名無しさん:2012/04/16(月) 10:25:33.03
ttp://twitter.com/#!/kinaba/status/191515893845602304

きた! メイン日本語リファレンスきた! これで勝つる
209デフォルトの名無しさん:2012/04/16(月) 10:26:45.51
DのリファレンスはML
210デフォルトの名無しさん:2012/04/16(月) 21:41:10.74
リファレンスが別のプログラミング言語で書かれてるのか
DさんのドSぶりにはもうついていけないな
211デフォルトの名無しさん:2012/04/16(月) 21:51:11.95
CTFEで生成したDdoc文字列の適用とかできたら楽しそうだね
212デフォルトの名無しさん:2012/04/17(火) 17:38:59.01
いい加減例のポンキッキーズのPちゃんみたいなキャラに名前付けようぜ
213デフォルトの名無しさん:2012/04/17(火) 17:57:12.36
Dちゃん
214デフォルトの名無しさん:2012/04/17(火) 18:50:55.71
ふう
215デフォルトの名無しさん:2012/04/17(火) 20:23:41.58
はえーよ
216デフォルトの名無しさん:2012/04/17(火) 22:16:24.78
今D言語でDコンパイラ書いてるけど何か欲しい拡張機能ある?
とりあえずPOWERとSPARCのインラインアセンブラは実装した。
217デフォルトの名無しさん:2012/04/17(火) 22:59:19.66
拡張機能なんて実装しても
後で本家との互換性で苦労するだけだお
218デフォルトの名無しさん:2012/04/17(火) 23:11:13.53
どこまでできてるんだろう
219デフォルトの名無しさん:2012/04/17(火) 23:24:37.08
>>216
とりあえず Win で動いてソース公開してくれれば
後は何とかなる

欲を言えば非GPLで
220デフォルトの名無しさん:2012/04/17(火) 23:59:52.97
>>217
druntime内部でのOS管理番号を勝手に拡張してるので本家が新しくサポートOS追加したら詰む

>>219
phobosとdruntimeの一部はまんま載せてるのでライブラリはブーストにせざるを得ないかもわからんね
221デフォルトの名無しさん:2012/04/18(水) 00:13:15.89
src/dmd/root/ってなんなんなん?
Cなん?C++なん?
222デフォルトの名無しさん:2012/04/18(水) 00:27:08.72
>>221
拡張子はcだが中身はc++
223デフォルトの名無しさん:2012/04/18(水) 01:19:44.53
しまった、見逃していた。次からはこれもテンプレにいれよう
http://bm98.yaneu.com/dlang/english.html
224デフォルトの名無しさん:2012/04/18(水) 12:58:43.69
C/C++ に疲れた人の D 言語 2.0
http://www.ie.u-ryukyu.ac.jp/~e085739/d.tuts.html

これも入れよう
225デフォルトの名無しさん:2012/04/18(水) 14:00:31.96
Dだと仕様変更で疲れる
226デフォルトの名無しさん:2012/04/18(水) 17:46:39.63
wikipedia の記事の構成を少し直した
手を入れやすくしたつもり
227デフォルトの名無しさん:2012/04/18(水) 23:02:34.12
>>224
>C/C++ に疲れた人の D 言語 2.0

それ私の書いたやつそのまんまなんだけど何なんだろうなあ。ローカルにデータ落としてたのかな。
228デフォルトの名無しさん:2012/04/18(水) 23:22:07.15
琉球大吹いたw
229デフォルトの名無しさん:2012/04/18(水) 23:47:16.40
>>227
ついったに凸
230デフォルトの名無しさん:2012/04/19(木) 00:52:29.06
読んだことあるなと思ったからURL移転してたのかと思ったけどぜんぜん違うのかww
231デフォルトの名無しさん:2012/04/19(木) 16:38:41.93
Changed lexer to support # as a token, preserving #line's original behavior

うーん…
これはどういうものなのか教えて下さいな
232デフォルトの名無しさん:2012/04/19(木) 17:10:06.48
>>231
"ABC" の " が単体でトークンじゃないのと同じように

# は
#line NUM FILE 改行
という特殊なトークンの一部として扱われていた

それが単体でトークンとして扱われるようになった

つまり何が変わるかというと、
q{ } というDのトークンだけを記述できる文字列の中で
# を単体で使用することができるように・・・


ならないじゃねーか、コンチクショウっ!!
233デフォルトの名無しさん:2012/04/20(金) 01:58:15.15
とりあえずの内部的な変更ってやつだな
234デフォルトの名無しさん:2012/04/20(金) 02:34:11.67
>>208
協力者歓迎らしい @ github
ttps://github.com/kinaba/dlang-ref-jp
235デフォルトの名無しさん:2012/04/21(土) 06:35:30.28
std.container.ArrayをVectorみたいな使い方しようと思ったけど中身のポインタ取れないんだねこれ
236デフォルトの名無しさん:2012/04/21(土) 15:49:08.49
Dで実装した日本語全文検索システムがiccでビルドったやつより早くてワロタ
あとはCGIとして動かせれば・・・・・・。
237デフォルトの名無しさん:2012/04/21(土) 16:41:10.01
>>235
どんな使い方かわからんからなんとも
238デフォルトの名無しさん:2012/04/21(土) 16:56:34.81
>>236
そこまで書いたということは・・・分かるな?
239デフォルトの名無しさん:2012/04/21(土) 17:02:47.97
スクリプトやインタプリタじゃねーんだからライブラリをまるっとスタティックリンクすりゃーイイだけじゃん?
240デフォルトの名無しさん:2012/04/21(土) 17:07:10.67
(; ・`д・´)…ゴクリ…
241デフォルトの名無しさん:2012/04/21(土) 17:40:15.20
64bitで動かないんじゃ
242デフォルトの名無しさん:2012/04/21(土) 19:59:20.28
>>235 をなんとかできないかなーと、std.container.Arrayいじってたんだけど、バグかと思われる。
ttp://ideone.com/OIOoj
(dmd2059xWindows)修正がてら追加した Array.Range.ptr を public にしとけば 235 も喜ぶんじゃないか?
243デフォルトの名無しさん:2012/04/21(土) 20:07:00.82
ばぐぅぅぅ
244デフォルトの名無しさん:2012/04/21(土) 20:35:43.76
>>236
Cと同じやり方でうごかせるんじゃねーの?
245デフォルトの名無しさん:2012/04/21(土) 20:51:12.08
>>244
サーバーがdmdが対応してないOSとかじゃね?
246デフォルトの名無しさん:2012/04/21(土) 21:21:29.22
>>245
GDC版使ってみるとか。
クロスコンパイラだし、試してみる価値はあるはず。
247デフォルトの名無しさん:2012/04/21(土) 21:23:02.28
gdcって1.0系じゃ・・・
248デフォルトの名無しさん:2012/04/21(土) 22:40:26.20
std.algorithm.mapにクロージャ渡したい
249デフォルトの名無しさん:2012/04/21(土) 22:58:58.36
>>245
どっこい動かないんだよなぁLinuxなのに。gccバイナリはフツーに動くのに謎だ。ABIのせいか?
250デフォルトの名無しさん:2012/04/21(土) 23:51:13.27
>>249
もしかして、HTTPヘッダ送信してないとか?
251デフォルトの名無しさん:2012/04/22(日) 00:17:13.56
俺のエスパーによると権限の問題だ
252デフォルトの名無しさん:2012/04/22(日) 11:35:17.62
>>248
mapもどきを自作しる
253デフォルトの名無しさん:2012/04/22(日) 11:38:50.40
>>249
俺のエスパーによると
・文字コード
・実行ファイル名に依存する設定の漏れ
・リンケージ指定の漏れ(エントリポイントがmain以外の場合)
254デフォルトの名無しさん:2012/04/22(日) 16:43:46.37
今さら気づいたけど何でコレ出来ちゃうの? おかしいだろ

enum { A=1,B=1 }
255デフォルトの名無しさん:2012/04/22(日) 17:24:05.52
toImpl!ENUM とか final switch とか整合取れないと思うんだけどな〜
256デフォルトの名無しさん:2012/04/22(日) 17:37:27.49
>>255
ヒント
・宣言は式に含めることはできない
・無名enumは型宣言では無い
257デフォルトの名無しさん:2012/04/22(日) 19:18:56.08
するとtypeof(A)はintになるのか
258デフォルトの名無しさん:2012/04/22(日) 20:10:49.65
>>257
その発想は無かった。

ので、試してみた。
http://ideone.com/r0Fka
259254 訂正:2012/04/22(日) 20:17:38.19
今さら気づいたけど何でコレ出来ちゃうの? おかしいだろ

enum E { A=1,B=1 }
260デフォルトの名無しさん:2012/04/22(日) 21:16:03.50
>>259
結局何が言いたいんだ。
261デフォルトの名無しさん:2012/04/22(日) 21:40:49.13
列挙型 が値の重複を許すというのがC系言語の伝統であるという
衝撃の事実をもってこの討論の終わりとしたい


な、納得なんかしてないんだからね、誤解しないでよねっ
262デフォルトの名無しさん:2012/04/23(月) 00:40:18.85
enum E { A=1,B=1 }
static assert(E.A != E.B);
これがだめなのが悲しいってことでしょ
263デフォルトの名無しさん:2012/04/23(月) 02:30:05.95
>>259
理由:列挙子の別名を許すため
enum E { A=1, B=A } // E.BはE.Aの別名

final switchはちゃんと別名を判断してくれる

enum E { A=1, B=A }
void main() {
E e = E.A;
final switch (e) {
case E.A: break; //E.AだけでOK
}
final switch (e) {
case E.B: break; //E.BだけでOK
}
}
264デフォルトの名無しさん:2012/04/23(月) 03:06:00.40
E.T == alian
265デフォルトの名無しさん:2012/04/23(月) 15:10:41.07
alias E.T alien;
266デフォルトの名無しさん:2012/04/23(月) 15:24:17.25
alian を align に空目した俺は、

>>234 には協力できそうにないな・・。
267デフォルトの名無しさん:2012/04/23(月) 15:37:02.70
クロージャ周りでGCのバグ無いか
発生条件わからんが
268デフォルトの名無しさん:2012/04/23(月) 15:51:06.89
GCじゃないな
クロージャ使うとローカル変数が逝ってセグフォ
クロージャの引数型ちゃんと書いたら起こらなくなった
似たような症状ない?
269デフォルトの名無しさん:2012/04/23(月) 16:19:56.62
構造体リテラルと見分けづらい書式だったり?
270デフォルトの名無しさん:2012/04/23(月) 18:50:21.09
>>261
歴史的な理由で、同じ値を使うのが適切なこともある。

例えば文字コードのこれとかw

enum CharctorSet
{
 Shift_JIS = 932
 SJIS = 932
 x-sjis = 932
 MS_Kanji = 932
}
271デフォルトの名無しさん:2012/04/23(月) 19:24:27.54
あー納得した

納得したのはいいが
いつになったらMS932がちゃんと使えるようになるのだということを思い出して悲しくなった
272デフォルトの名無しさん:2012/04/23(月) 22:44:14.61
え?
D言語を使っている外国人は
UTF-8かUTF-16で我慢しろってお達しだけど
知らなかったの?
273デフォルトの名無しさん:2012/04/23(月) 23:01:33.95
C#のEncodingみたいなのくれよ
274デフォルトの名無しさん:2012/04/23(月) 23:07:06.58
>>273
言いだしっぺ登場!待ってました!
275デフォルトの名無しさん:2012/04/23(月) 23:26:59.10
http://site.icu-project.org/home
興味はある。
やる気が続くかは知らない。
応援されたらやる気出る・・・かも?
276デフォルトの名無しさん:2012/04/23(月) 23:58:33.05
今年も自分の誕生日を知らせるソフトが起動した
もう二度とコンパイルできないけどな
277デフォルトの名無しさん:2012/04/24(火) 00:17:37.84
こんな悲しいレス見たの初めてだ
278デフォルトの名無しさん:2012/04/24(火) 00:18:46.48
ソースをアップデートしてないからコンパイルできないって意味だよなw
279デフォルトの名無しさん:2012/04/24(火) 00:19:11.98
おめでと…ううっ
280デフォルトの名無しさん:2012/04/24(火) 00:20:50.23
他の言語にパッケージマネージャが整備されているように、
Dにはコンパイラマネージャが必要なのだ
281デフォルトの名無しさん:2012/04/24(火) 00:24:34.05
>>278
D2できたばっかりの頃ののコードだからな

>>279
ありがとう
D言語10周年記念にはDちゃんの同人誌を出そう
282デフォルトの名無しさん:2012/04/24(火) 00:34:15.28
283デフォルトの名無しさん:2012/04/24(火) 00:38:55.56
>>282
それだけ愛嬌溢れるマスコットならどれだけ普及していたか
284デフォルトの名無しさん:2012/04/24(火) 02:00:42.04
285デフォルトの名無しさん:2012/04/24(火) 02:18:50.61
.o o
< /
p ~q
|д >
|,__/
./ >
J L
286デフォルトの名無しさん:2012/04/24(火) 09:14:48.89
Ver指定で自動変換してくれるソフト欲しい。
自動で出来ない所は指摘してくれれば良し。
287デフォルトの名無しさん:2012/04/24(火) 09:52:28.53
var指定で自動変数にしてくれる現状のdmdで我慢汁!
288デフォルトの名無しさん:2012/04/24(火) 10:51:52.93
そういうのを自動でしづらい奴が deprecated されていくのではないか

リリースごとに移行ガイドはあっていいと思うけど
289デフォルトの名無しさん:2012/04/24(火) 11:37:38.87
#! /bin/dmd-manager 2.058
import std.stdio;
void main() { ... }
290デフォルトの名無しさん:2012/04/24(火) 15:42:25.90
このVerのdmdで通ったと指定すると、最新リリースに自動変換かけて、移行ガイド+注意点+対象行を表示する感じ。
標準リリース内容全てをやってくれるとありがたい。Ver履歴を自力でたどるの面倒。
あと公式サイトのコード例が一部動かないけど、サイト全体をautobuild管理しないの?
公式サイトの文書も文書担当コミッタがバグ管理とか。

D言語はじめたばかりなんで、的外れだったらスマン。
291デフォルトの名無しさん:2012/04/24(火) 16:02:47.60
公式はウォルターの趣味サイトだからなあ
292デフォルトの名無しさん:2012/04/24(火) 16:49:23.66
公式サイトもバグレポ対象
293デフォルトの名無しさん:2012/04/24(火) 16:54:43.14
>>290
そういう足枷をなくしてやりたい放題なところが
Dのよいところでもあり、悪いところでもあり、悪いところでもあり、わ(ry

Java+Eclipse みたいに
枠にはめて手取り足取りなのに憧れを感じはするけども
294デフォルトの名無しさん:2012/04/24(火) 17:14:44.26
あるいは開発サイドにそのような概念を持ち合わせていないという可能性も
295デフォルトの名無しさん:2012/04/24(火) 17:58:59.32
>>293
悪いところが(ry
やりたい放題は良いんだけど、VerUP補助ツールくらいは作れるはず。
ツールを通すと自動で出来る所は勝手に変換して、人力部分は行数と変更点を表示。
表示行を手動で直せば最新で通る、みたいな。
296デフォルトの名無しさん:2012/04/24(火) 22:33:02.90
仕様変更についてはChangeLogから作れるかもしれないけど
副作として生じたバグや挙動変化もあるから
簡単じゃないと思う
297デフォルトの名無しさん:2012/04/25(水) 00:21:26.95
Google Code Jam のせいで Dの注目度が少し高まっているらしい
298デフォルトの名無しさん:2012/04/25(水) 00:26:48.83
仕様にない挙動変化やバグは他の言語でもあるから、仕様部分だけでもやってくれると楽。
299デフォルトの名無しさん:2012/04/25(水) 12:30:36.97
dmdさん、ミスタイプ用の識別子予測でdeprecatedの関数薦めないでください
300デフォルトの名無しさん:2012/04/25(水) 19:58:19.18
うぉるたくん「そのくらいのことで いちいちさわぐな」
301デフォルトの名無しさん:2012/04/25(水) 21:22:09.97
うぉるたくん「やっぱり ぼくが かんがえた ぷろぐらむげんごが いちばん つよいんだ」
302デフォルトの名無しさん:2012/04/25(水) 21:30:35.49
けっきょく Dが いちばんつよくて すごいんだよね
303デフォルトの名無しさん:2012/04/25(水) 21:41:56.48
でぃー「わたしを つかいたいのならば ちからをしめせ」
304デフォルトの名無しさん:2012/04/25(水) 22:33:09.90
D.NET欲しいわ……
305デフォルトの名無しさん:2012/04/26(木) 22:24:23.40
自作の試作コンパイラを試しにpragmaでバージョン指定できるようにしてみたんだけど
ver.毎のphobosのライブラリとソース、レキシカルアナライザを載まなきゃいけないから
コンパイラがアホみたいにでかくなる
ちょっと実用的じゃないね。。。
306デフォルトの名無しさん:2012/04/26(木) 22:32:24.22
>>304
ネイティブ動作という一番のD言語の使用動機を全否定かッ
307デフォルトの名無しさん:2012/04/26(木) 22:42:12.91
そこはnewest version に対するdiff添付で
LTPT (linktime patch technology)だろ!
308デフォルトの名無しさん:2012/04/26(木) 23:04:49.83
>>307
似たような考えでコンパイル時コンパイラ自動生成も今書いてる
鈍足のC++じゃ絶対できないな
309デフォルトの名無しさん:2012/04/26(木) 23:08:14.61
まさかのこのD言語はD言語で書かれています?
310デフォルトの名無しさん:2012/04/26(木) 23:09:12.14
無論 D by D ですよ
311デフォルトの名無しさん:2012/04/26(木) 23:19:05.15
バージョンアップが辛いと思う人はD使わない方が幸せになれると思う
312デフォルトの名無しさん:2012/04/26(木) 23:54:18.92
CだかC++じゃなかった?
313デフォルトの名無しさん:2012/04/27(金) 00:04:30.51
これってウインドウズのGUIのソフトとか作れんの?
314デフォルトの名無しさん:2012/04/27(金) 00:09:13.91
32bit版限定ならそれなりに。
APIを使いこなせる人じゃないと厳しいだろうけど
315デフォルトの名無しさん:2012/04/27(金) 00:19:18.35
理論上はなんでも作れるけど・・・
ライブラリが整備されてない所はすんごく大変w
316デフォルトの名無しさん:2012/04/27(金) 00:24:28.61
今時のを作りたいなら.NET+WPFだろうね
317デフォルトの名無しさん:2012/04/27(金) 00:32:02.64
なるほどありがとうエロい人たち
ローレベルから掘ってく感じなのね
318デフォルトの名無しさん:2012/04/27(金) 00:48:46.30
高レベルなライブラリが出来にくいのは
言語〜ライブラリレベルで破壊的な仕様変更が頻繁に行われているからだよ
そういうのが嫌ならうぉるたくんをひっぱたいて反省させてあげてね
319デフォルトの名無しさん:2012/04/27(金) 01:26:20.20
あ、対話環境欲しいです。
320デフォルトの名無しさん:2012/04/27(金) 01:42:29.62
あたいも環境ほしいです。
321デフォルトの名無しさん:2012/04/27(金) 08:52:23.48
>>313
手っ取り早くWin32のAPI使いたい場合、今もメンテされてるのは
ttp://www.ku6.jp/keyword7/1.html

ttp://pen-jr.org/lang_d/tool/htod6.php

>>30の人がDWMAPIとか使ってる。
322デフォルトの名無しさん:2012/04/27(金) 11:42:56.02
>>321
あれ、dsource.orgのやつはもはや古いのか……?
323デフォルトの名無しさん:2012/04/27(金) 18:43:23.22
ライブラリの情報ってどこで取れば良いの?
324デフォルトの名無しさん:2012/04/27(金) 20:59:24.44
ついったで呟く
325デフォルトの名無しさん:2012/04/27(金) 21:28:10.91
ついったはまず名無しにしてくれ
変化が大き過ぎるから都度聞くしかないか
326デフォルトの名無しさん:2012/04/27(金) 21:30:40.92
実はD言語って今でも普通に使ってたり使えてたりする人多いんかな
327デフォルトの名無しさん:2012/04/27(金) 21:32:29.72
一年前と比べるとかなり実用レベル
328デフォルトの名無しさん:2012/04/27(金) 21:49:43.72
なんかの大会だかコンテストで参加者のコードが見れるんだけど1位の人がD言語使ってたってちょっと話題になったよね。
329デフォルトの名無しさん:2012/04/27(金) 22:19:40.07
今だからこそ前より使える
330デフォルトの名無しさん:2012/04/27(金) 22:51:58.18
これだな 今から参加できるのかな?
http://code.google.com/codejam/schedule.html
331デフォルトの名無しさん:2012/04/28(土) 03:56:40.05
cast(auto)とか出来るようにならないかなあ
332デフォルトの名無しさん:2012/04/28(土) 06:03:59.12
何その暗黙的明示キャスト
333デフォルトの名無しさん:2012/04/28(土) 07:36:03.54
= の右側に単独にある場合や
関数の引数に単独にある場合に使うのか
334デフォルトの名無しさん:2012/04/28(土) 10:05:52.19
そりゃ言語じゃなくてIDEの機能だべ
335デフォルトの名無しさん:2012/04/28(土) 13:05:32.23
それいったらauto自体がIDEの機能だし
テキストエディタで書きやすいって特徴を伸ばすのはありだと思う
336デフォルトの名無しさん:2012/04/28(土) 13:09:12.51
支援機能無しじゃとても書いてらんねえマークアップ言語とか
わざとやってんじゃねーかと思えるテキストデータ形式が増えたよね
337デフォルトの名無しさん:2012/04/28(土) 13:13:41.29
Javaとかエディタで書くと苦痛そのものだがDではその苦痛がほとんど無い
templateのカッコ省略とかも何気にステキ機能
338デフォルトの名無しさん:2012/04/28(土) 13:19:18.37
IDEが必要なのは抽象化機能の不足
339デフォルトの名無しさん:2012/04/28(土) 13:42:34.66
auto はテンプレートとかクロージャのために必要と思ってる

>>331 は 中身わからないけど alias とか使うと幸せかも知れない
340デフォルトの名無しさん:2012/04/29(日) 00:57:23.74
pure nothrow @safe const とか長い修飾子ちゃんと付けてるひといるのか
341デフォルトの名無しさん:2012/04/29(日) 01:16:59.61
その前に、Dのcastって、相当低レベルな処理だぞ。
簡単にautoとか出来るような処理してないぞ。
342デフォルトの名無しさん:2012/04/29(日) 02:24:19.29
constとinとimmutableはつける
後は……
343デフォルトの名無しさん:2012/04/29(日) 10:27:03.09
autoがvarに変更にならないかな
Cのauto変数と意味が違うからどうも
344デフォルトの名無しさん:2012/04/29(日) 11:41:02.15
c++11と同じだから問題ない
345デフォルトの名無しさん:2012/04/29(日) 12:11:06.92
@safeとかnothrowとか微妙に推論してくれるようになった気がしたけどそんなことはなかったぜ
346デフォルトの名無しさん:2012/04/30(月) 07:00:25.31
poseidonって完全更新とまってる?
() => (...) があるとparserが失敗する・・・
347デフォルトの名無しさん:2012/04/30(月) 13:07:09.03
なんか前はinPatternでa-z指定してもA-Zにマッチしてたような気がしたけど
いましないねいつ変わったんだろう それとも気のせいかな・・
348デフォルトの名無しさん:2012/04/30(月) 13:34:36.07
>>346
死んでるなぁ→どっこい生きてた→死んでるなぁ→どっこい生きてた→死んでる ←いまここ
349デフォルトの名無しさん:2012/04/30(月) 13:49:30.91
>>346
ソースのライセンスも明記されてないような・・・
350デフォルトの名無しさん:2012/04/30(月) 15:46:17.03
VisualD使え捗るぞ
351デフォルトの名無しさん:2012/04/30(月) 18:12:02.99
VS2008だとShell入れないといけないし、VS2010は登録しないと使えないし・・
352デフォルトの名無しさん:2012/04/30(月) 21:41:31.93
visualDってプロジェクトごとにライブラリやインクルードするフォルダの設定とかできる?
353デフォルトの名無しさん:2012/04/30(月) 22:14:57.47
だれかblazeって使ってる人いる? box2dをD言語に移植したやつらしい.
これやるのとbox2dをC経由で使うのとどっちのがいいのかなぁ
354デフォルトの名無しさん:2012/05/01(火) 01:07:30.21
18スレ目見る限り(Demoを)動かした人は多数いる模様
355デフォルトの名無しさん:2012/05/01(火) 01:18:27.48
これのライセンスって商用利用時にも使いましたと明記する必要なしって読めたけどあってる?
でも2009以降の更新がないということは・・・・
356デフォルトの名無しさん:2012/05/01(火) 02:42:29.15
blazeコンパイルしてみたけど挙動がおかしい\(^o^)/
357デフォルトの名無しさん:2012/05/01(火) 13:32:47.13
>>356
2.059でmakeかけたらコンパイラに怒られまくったorz
358デフォルトの名無しさん:2012/05/01(火) 15:03:26.23
自分で機能追加とかする気がなければラッパーで・・・って
C++じゃそうもいかんべ
359デフォルトの名無しさん:2012/05/01(火) 16:27:47.44
>>357 2.059でもinoutとビット演算の部分なおしただけでコンパイルは通ったけど・・・
360デフォルトの名無しさん:2012/05/01(火) 17:12:51.04
LF改行の中に CRLF が混じってて行番号ずれに悩んだ・・・ぐぬぬ
361デフォルトの名無しさん:2012/05/01(火) 17:15:50.71
>>359
他にも↓とか直したんだけど
・final→immutable
・変数名lambda→別名
・no reachなんたら
・final switch
・@property

↓なんぞ・・・・
 bzNullContactに2引数のコンストラクタ持たせても消えない・・・

.\dynamics\contact\bzContact.d(120): Error: null dereference in function _D5blaze8dynamics7contact9generator13bzNullContact13bzNullContact6__ctorMFZC5blaze8dynamics7contact9generator13bzNullContact13bzNullContact
362デフォルトの名無しさん:2012/05/01(火) 17:35:13.99
>>361
class bzNullContact : bzContact
{
this() {
super(null, null); // 実行時にぬるぽ
}
}
いや、コンパイラがそんなとこまで頑張らなくていいから・・・w
363デフォルトの名無しさん:2012/05/01(火) 17:36:40.42
コンパイラじゃなくてオプティマイザの仕業だったかも
364デフォルトの名無しさん:2012/05/02(水) 00:29:24.64
とりあえずこれでdmdは大人しくなってlib作れたけど
そもそも元のソースで構造体変数にnullをセットするようになってたのはOKなのか・・・

class bzNullContact : bzContact
{
  private bzShape s1_;
  private bzShape s2_;
  this()
  {
    super(s1_, s2_);
  }
  override void evaluate(bzContactListener listener) {}
}
365デフォルトの名無しさん:2012/05/02(水) 01:07:28.28
helloWorld.dを実行すると
一辺1.0のBoxが y=4.0 から自由落下した結果
y座標が3.9972〜0.9972まで変化して表示されるんだけどこれって正しい動作?
0.0028ずれてない・・・?
366デフォルトの名無しさん:2012/05/02(水) 08:29:26.71
>>364
新しいdmdは賢いからそういうおかしなコードは通らない。元々許してたのがおかしいんだけど。
367デフォルトの名無しさん:2012/05/02(水) 11:37:01.30
VisualD 0.3.32
368デフォルトの名無しさん:2012/05/02(水) 19:14:41.32
>>365
それもおかしいし,落とす物体の初期x座標を0.01ほどずらすともはやカオス
369デフォルトの名無しさん:2012/05/03(木) 23:34:36.20
ふとしたことからiniファイル読むプログラム作るはめになりそうなんだけど
std.iniって結局phobosに入るの?
370デフォルトの名無しさん:2012/05/04(金) 00:08:48.17
わざわざ入れるほどのものでもない
ほしければ自分で取り込めばイイ

機能追加とかも考えにくいし
371デフォルトの名無しさん:2012/05/04(金) 01:31:33.64
入らないっぽいのか
じゃあ自作するかー。Dなら5秒で書けるだろ
372デフォルトの名無しさん:2012/05/04(金) 02:56:38.92
なんかblazeメンテされてないから最新のBox2DをBox2D4Dとかの名前で移植しようかと思ったけど
全部だとめんどいですね。ポーティングの方がいいのかな。でも元ソースがC++という・・・
373デフォルトの名無しさん:2012/05/04(金) 21:55:08.86
D言語で構造体変数の参照(非ポインタ)をreturnする場合って↓みたいにすればコピーコンストラクタ走らないですか?

ref const(S) f(){return m_s;}

C言語で言うと↓見たいのがやりたいです
const S& f(){return m_s;}
374デフォルトの名無しさん:2012/05/04(金) 22:29:45.50
>>373
戻り値のref は左辺値として使う時専用みたい。
構造体Sにint x; というメンバがあるとして、
f().x = 10; // コピーコンストラクタは走ってない。
戻り値を代入すると、
auto s = f(); // コピーコンストラクタが走る。
みたいな感じ。
375デフォルトの名無しさん:2012/05/05(土) 02:05:15.04
あれ・・D言語のstructがわけわからない・・・2が表示される
sの参照がssにセットされるからss.aに値を代入すればs.aも連動するはずじゃないのかな
コピーコンストラクタも動いてないし何が起きてるのかさっぱり

import std.stdio;
struct S
{
  int a;
  this(int a){this.a = a;}
  this(this){
    writeln("copy ctor!");
  }
}

ref S f(ref S s)
{
  return s;
}

void main()
{
  S s = S(2);
  S ss = f(s);
  ss.a = 101;
  writeln(s.a);
}
376デフォルトの名無しさん:2012/05/05(土) 02:07:40.10
ss を初期化する時点でコピーされる
C++ の参照でも同じじゃん
377デフォルトの名無しさん:2012/05/05(土) 02:22:08.78
コピーされたなら コピーコンストラクタのthis(this);が呼ばれない?
"copy ctor!"が出力されてないからthis(this);が呼ばれていない⇒コピーされていないって思ってるのだけど
378デフォルトの名無しさん:2012/05/05(土) 02:46:11.89
this(this) はビットコピーが完了した後呼ばれる・・・呼ばれてないな
379デフォルトの名無しさん:2012/05/05(土) 02:50:30.52
D2の構造体は複雑だなあ・・・
http://ideone.com/dUrpK

バージョンが古いので、最新版でどうなってるかは分からん。
380デフォルトの名無しさん:2012/05/05(土) 02:56:24.92
もう少し詳しく。
http://ideone.com/M0QFD
381デフォルトの名無しさん:2012/05/05(土) 16:39:51.62
>>372
フォーラム見てるとBox2D4Dってプロジェクトはアルっぽいけど動いてなさげ
box2dをDに移植するのと,blazeをD2に移植するのどっちが楽なんだろ.blazeはどの程度使いまわし出来るんだろ
382デフォルトの名無しさん:2012/05/05(土) 18:38:09.08
>>381
・blaze⇒D2
 ほぼsed等の置換でD2に対応出来た
 元のソースのバージョンが古いためスプライト描画等の機能が少ないと思われる。
 挙動がおかしい?
 最新版のbox2dとはファイル構成をはじめ結構違う

・最新のbox2d⇒D2
 移植めんどい
 C++等でbox2Dを使用したソースを流用しやすい(古い版を使用したソースはその辺に転がってない・・)
 blazeのベースとなった当時よりbug fixされていて安定していると思われる
383デフォルトの名無しさん:2012/05/05(土) 23:03:01.91
>>380
なんか"this"の出力多いな、と思ったんだが、opAssign の副作用で呼ばれてるのか
http://ideone.com/harBY
これ見る限りでは >>375-378 にあたる"-3-"で"this"が出力されないところだけおかしいってとこかな。
384デフォルトの名無しさん:2012/05/05(土) 23:22:34.43
copy on writeとかの処理ミスってるぽい動きだなあ
385デフォルトの名無しさん:2012/05/06(日) 16:40:05.29
ビットコピーだけして終了してる感じなのだろうか
386デフォルトの名無しさん:2012/05/06(日) 21:38:32.29
SQLiteって今のDでだれか使ってる?
すぐに使えるのなら使ってみたいんだけど。
387デフォルトの名無しさん:2012/05/06(日) 21:45:12.81
388デフォルトの名無しさん:2012/05/06(日) 21:52:33.17
生のC用APIそのままでいいなら普通に使ってるよ
389デフォルトの名無しさん:2012/05/06(日) 22:58:43.31
Dを普通に使ってるのもすごいな・・・
390デフォルトの名無しさん:2012/05/06(日) 23:01:06.57
ウィジェット・ツールキット以外は使えるんだよ、それ以外は。
391デフォルトの名無しさん:2012/05/07(月) 23:17:28.41
shiftjisのファイル読みたいんだけど、Dで手っ取り早い方法ある?
392デフォルトの名無しさん:2012/05/08(火) 01:47:58.64
>>391
WindowsでUTFを使う

今も使えるかは知らない
393デフォルトの名無しさん:2012/05/08(火) 02:30:24.25
>>391
std.windows.charset.fromMBSz があるじゃなーぃ
ttp://dlang.org/phobos/std_windows_charset.html
394デフォルトの名無しさん:2012/05/08(火) 12:29:56.48
char*に突っ込む
395デフォルトの名無しさん:2012/05/08(火) 19:42:46.79
jcode.d
396デフォルトの名無しさん:2012/05/08(火) 23:02:25.71
Dを何気ないツール書くのに使うときってtemplateとか素敵機能使う?
俺ベターC++的な使い方以上なかなかできない
397デフォルトの名無しさん:2012/05/08(火) 23:23:02.36
むしろテンプレートだと意識してないかもしれない
to!int(n) とか頻繁に出てくるし、
void foo(T)(T n) {} とか普通に書くよ
398デフォルトの名無しさん:2012/05/08(火) 23:34:39.88
逆にテンプレートがないと書けない。
C++もboostがないと書けない。
399デフォルトの名無しさん:2012/05/08(火) 23:59:58.61
(T)(in T[] list, ..){ ...
みたいのはよく使う
400デフォルトの名無しさん:2012/05/09(水) 08:00:22.38
C++にない機能はあんまり使わないかも。
2進数リテラルとforeach、レンジ、スコープガードを使うくらいかな?
401デフォルトの名無しさん:2012/05/09(水) 19:50:19.92
組み込みの連想配列とか配列スライシングは頻繁に使う
C++でもできるけど文法面がけったるいというか
あと型推論

文字列もimmutableになってるのは結構便利だったりするし
402デフォルトの名無しさん:2012/05/09(水) 20:36:49.01
std.xmlめ、行内にascii以外の文字があるとインデントがでたらめになりやがる

どうせ直さないのはわかってるけど結局今phobosのXMLはどうなってるの?
403デフォルトの名無しさん:2012/05/10(木) 01:25:04.60
C++のfriendとかどうやって移植すればいいんだ・・・
404デフォルトの名無しさん:2012/05/10(木) 01:55:03.66
普通に同じモジュールで
405デフォルトの名無しさん:2012/05/10(木) 03:14:18.14
private は、同じクラスのメンバのみが参照できる、 あるいは同じモジュールのクラス/関数のみが参照できることを示します。 private メンバをオーバーライドすることはできません。 モジュールのメンバを private と宣言するのは、 C での static宣言と同等です。
406片山博文MZボット ◆0lBZNi.Q7evd :2012/05/10(木) 18:16:16.58
D言語のWin32 APIサポートは貧弱みたいだね。何かいいのある?
407デフォルトの名無しさん:2012/05/10(木) 18:26:13.26
最近あんまり触れてなかったからよくは知らないけど
BindingsプロジェクトのWindowsAPIとか使えるんじゃね?
408片山博文MZボット ◆0lBZNi.Q7evd :2012/05/10(木) 18:30:45.82
>>407 サンクスヴェリーマッチョ
409デフォルトの名無しさん:2012/05/10(木) 20:14:30.52
>>404
C++の元のソースがあんまり関係ないクラスのprivateメンバをチラ見したいがためにfriend指定してるっていうひどい作りなので
そういうクラスたちを一緒のファイルに入れるのがすごく抵抗あるんだ
しかもそんな利用法のfriendが大量に並んでるからものすごいカオス
真っ当じゃない使い方のfriendに相当する機能がないってことは設計から見直すしかないのか・・・・・
410デフォルトの名無しさん:2012/05/10(木) 20:26:14.75
>>409
1モジュールに全部詰め込んでしまえばいい。
411デフォルトの名無しさん:2012/05/10(木) 20:33:34.07
>>409
なんだそのカプセル化の基本を無視したコーティングはwwww
逆に興味ある。
412デフォルトの名無しさん:2012/05/10(木) 20:34:58.13
>>410
頭いいな!そうする
413デフォルトの名無しさん:2012/05/10(木) 20:36:00.10
publicでいいんじゃね?w
414デフォルトの名無しさん:2012/05/10(木) 21:05:36.02
ここまで作った。(なげやり)
http://ideone.com/4FCX6
415デフォルトの名無しさん:2012/05/10(木) 21:44:12.04
character
416デフォルトの名無しさん:2012/05/10(木) 23:39:20.62
>>414
cast(immutable)なこと出来たのかー
417デフォルトの名無しさん:2012/05/11(金) 00:05:18.70
実態は大差ないけどassumeUniqueの方がいいかもね
418デフォルトの名無しさん:2012/05/11(金) 00:09:30.34
assumeUnique()の「決意表明である!」みたいな説明を見て
なんとなく不安になるのは俺だけじゃないはず
419デフォルトの名無しさん:2012/05/11(金) 00:20:53.74
「コードを書く側がimmutable性を保証する」って意味だからそんなに怖がらなくても
420デフォルトの名無しさん:2012/05/11(金) 00:22:36.71
心折れそう。(まだ途中)
http://ideone.com/MX7Lg
421386:2012/05/11(金) 00:46:05.19
>>387,388
遅くなったけどありがとう
程々にがんばってみるよ
422デフォルトの名無しさん:2012/05/11(金) 01:32:04.42
Linuxはiconv使えばいいかな
423デフォルトの名無しさん:2012/05/11(金) 18:49:32.68
box2d4dのコードをD2用になおして動かしてみたんだ.
バウンドすらしねえ
424デフォルトの名無しさん:2012/05/11(金) 20:33:47.56
SWIG でなんとかならんかな〜と思ったけど
情報が少なすぎて手も足も出ない
425デフォルトの名無しさん:2012/05/12(土) 09:27:59.41
これってどっちもOKじゃなかったっけ?1の方がエラーになる
1:
std.stdio.writeln("xxx");

2:
import std.stdio;
writeln("xxx");

-----------------------------------------------------------
Error: undefined identifier std
426デフォルトの名無しさん:2012/05/12(土) 09:38:23.12
std.stdio.って付けてもimportの省略とかはできませんよ
同じ名前の関数が別モジュールで複数ある場合に「どこの」関数であるかを明確にするために使います
427デフォルトの名無しさん:2012/05/12(土) 10:01:03.44
あれ?おっかしいなぁstd.conv.toはできるんだけど
↓とかv2.059でも行けた。でもwritelnの方にはつけるだけじゃだめぽい

import std.stdio;

void main()
{
writeln(std.conv.to!int("123"));
}
428デフォルトの名無しさん:2012/05/12(土) 12:19:28.09
>>427
ただのバグです。static importが無視されるってのは大昔からある伝統的なバグ。
最近若干改善されたから >>425 が正しくエラーになるようになった。
ttp://d.puremagic.com/issues/show_bug.cgi?id=314
429デフォルトの名無しさん:2012/05/12(土) 12:22:26.74
ばぐっすかーなるほど
430デフォルトの名無しさん:2012/05/13(日) 11:37:20.50
>>27-29
en.wikipedia の TLS には書いてあるのを見つけた
431デフォルトの名無しさん:2012/05/13(日) 11:48:07.43
公式の Glossary に UFCS の項目がないのは重大な手落ちだと思うんだ
誰か(ry
432デフォルトの名無しさん:2012/05/13(日) 23:11:49.02
いつからだ・・・・いつから
「new 構造体()」が実体じゃなくポインタを返すようになったんだ・・・・
433デフォルトの名無しさん:2012/05/13(日) 23:17:16.99
構造体newの犠牲者がまた一人
434デフォルトの名無しさん:2012/05/14(月) 00:01:48.44
実体を返してた時代があったのか・・・
Phobosがstruct使いまくりだした時代にはもうそれがなくなってたのかな?
435片山博文MZボット ◆0lBZNi.Q7evd :2012/05/14(月) 11:10:32.63
誰かD言語用の入力補完システムを作ってくれませんか?
436デフォルトの名無しさん:2012/05/15(火) 12:56:13.75
iconvの使い方って、本当にこれでいいのだろうか・・・
http://ideone.com/3rQNj
437デフォルトの名無しさん:2012/05/15(火) 16:09:06.52
WideCharToMultiByteは置き換えられない文字は?になるけどiconvは途中までの結果でエラーリターンしてくるぜ。
438デフォルトの名無しさん:2012/05/16(水) 08:14:42.31
構造体をnewしたことないわw
439デフォルトの名無しさん:2012/05/17(木) 09:12:29.92
D言語で書かれた国産ソフトってある?
ゲーム以外で。
440デフォルトの名無しさん:2012/05/17(木) 10:07:56.85
うちの会社のデータ処理アプリ
分析やら整形やら
441デフォルトの名無しさん:2012/05/17(木) 16:32:02.35
使えるようで使えないのがD言語
大した使用の差なんてないくせにいつまでもベータ版気取りやがって!!
442デフォルトの名無しさん:2012/05/17(木) 16:40:32.33
別に値打ちこいてる訳じゃなくて
あまりに魅力無いからレイプしたいと誰も思わないだけ
443デフォルトの名無しさん:2012/05/17(木) 19:10:50.98
GUIがろくに書けない時点で作れるソフトの選択肢が大幅に
444デフォルトの名無しさん:2012/05/17(木) 19:14:20.52
標準入出力のパイプで通信してGUIの構築とか入力の受け取りとかやってくれるソフトないの?
445デフォルトの名無しさん:2012/05/17(木) 19:48:02.92
gtk-serverとか?
破壊的変更毎に修正する手間はかけられない。
つまり普及の最大の障害人物は(ry
446デフォルトの名無しさん:2012/05/17(木) 19:55:37.23
とりあえずstd.datetimeを捨ててくれたら使ってやる。
あれが必須レベルでリンクされるとか実用の妨げにしかなってない。
447デフォルトの名無しさん:2012/05/17(木) 20:15:06.31
rdmdって単一ファイルにしか使えないの?
importで別の.dソースファイル参照するとか出来れば幸せなんだけども
448デフォルトの名無しさん:2012/05/17(木) 20:44:38.62
449デフォルトの名無しさん:2012/05/17(木) 21:24:35.80
私に良い考えがある。
破壊的変更をしないベターC++としての、D--を作って普及させるんだ。
450デフォルトの名無しさん:2012/05/17(木) 21:51:23.73
>>446
何があかんの?
451デフォルトの名無しさん:2012/05/18(金) 07:44:25.00
でかいんでしょう
452デフォルトの名無しさん:2012/05/18(金) 07:59:19.46
std.regexって今後小さくなるかな
GCとかも
453デフォルトの名無しさん:2012/05/18(金) 19:58:34.30
間違いなく大きくなりますね
454デフォルトの名無しさん:2012/05/18(金) 21:36:55.12
なんで?
今はまだ最低限の実装ってこと?
455デフォルトの名無しさん:2012/05/18(金) 22:11:58.74
世代型のコピーGCェ・・・
456デフォルトの名無しさん:2012/05/18(金) 22:52:06.53
こないだうぉるたんがGCまわりいじってたけど
世代型はまだまだ手付かずと思っていいのかな
457デフォルトの名無しさん:2012/05/19(土) 01:41:44.18
GCなしオプションこい
GC使う機能は全て無効で
458デフォルトの名無しさん:2012/05/19(土) 01:50:51.50
@nogc属性が追加されます
459デフォルトの名無しさん:2012/05/19(土) 02:10:27.71
GC無しはD言語使う意味半減な気がするから、
もっと賢く軽くなって
460デフォルトの名無しさん:2012/05/19(土) 03:17:55.19
組み込み用のクロスコンパイルくらいでしか使わない機能だな
461デフォルトの名無しさん:2012/05/19(土) 03:40:57.58
関数のbodyのとこにelseって書けない?
こういうのしたい

void func(T)(T t)
if(is(T : xxx)){


}else if(is(T : yyy)){

}else{

}
462デフォルトの名無しさん:2012/05/19(土) 03:52:35.59
static ifでどう?
463デフォルトの名無しさん:2012/05/19(土) 08:39:24.59
とりあえず中身は遅くてもバグだらけでもいいから
インターフェイスを完璧に固めてくれ
464デフォルトの名無しさん:2012/05/19(土) 12:42:00.76
>>462
そう思ってやってたんだけどなんかコンパイルエラーになるんだよなあ
http://ideone.com/CE03v
465デフォルトの名無しさん:2012/05/19(土) 12:54:12.32
>>464
staticの付け忘れのようだ。
http://ideone.com/YgZpQ
466デフォルトの名無しさん:2012/05/19(土) 12:58:13.43
うわああああああああああああああああああああ
そんなとこにもstatic・・・・orz

else ifってelseifじゃなくてelse{if}だったね、そうだね・・・勉強になった
467デフォルトの名無しさん:2012/05/19(土) 17:24:04.84
Phobosに内部表現そのままでキャストする関数ってないのか?
*cast(type*)&varって書かないとだめ?
468デフォルトの名無しさん:2012/05/19(土) 17:29:23.43
>>467
そんなことしてもメモリ配置は変わらないぞ。

型の変換をしたい →std.conv
同一の型か調べたい →is()式
469デフォルトの名無しさん:2012/05/19(土) 18:04:09.56
>>467
もしかして、型情報だけ変えたい?
cast()でおk。
470467:2012/05/19(土) 18:12:57.52
例えばuintの0x7fc00000をfloat.nanにしたいってこと
cast()だとnanにはならない
phobosに用意されてるのがあれば使いたいだけでポインタ通すままでもいいんだけど
471デフォルトの名無しさん:2012/05/19(土) 18:59:27.07
>>470
ああ、これは確かに気持ち悪い。
http://ideone.com/285cb

もしかして、これが必要だったりする?

std.math

pure nothrow @trusted real NaN(ulong payload);
payload の情報を埋め込んだ Quiet NAN を作ります

float に対しては、埋め込み可能な最大の payload は 0x3F_FFFF です。 doubles では 0x3_FFFF_FFFF_FFFF、 80-bit や 128-bit の real では、0x3FFF_FFFF_FFFF_FFFF が最大です。

pure nothrow @trusted ulong getNaNPayload(real x);
NAN から整数値のエラー情報を取り出します。

Returns:
ulong で payload を返す

float に対しては、埋め込み可能な最大の payload は 0x3F_FFFF です。 doubles では 0x3_FFFF_FFFF_FFFF、 80-bit や 128-bit の real では、0x3FFF_FFFF_FFFF_FFFF が最大です。
472デフォルトの名無しさん:2012/05/19(土) 19:29:53.82
俺は*cast(T*)cast(void*)pとかやってるなあ
おまじない的にvoid*挟んでる
473デフォルトの名無しさん:2012/05/20(日) 11:49:59.59
そろそろideoneもDのバージョン上げて欲しいなう
474デフォルトの名無しさん:2012/05/20(日) 19:56:00.02
こういうのできないかな
a[0..10].func();→foreach(ref x; a[0..10])x.func();
475デフォルトの名無しさん:2012/05/20(日) 21:15:25.28
UFCS的に不可
476デフォルトの名無しさん:2012/05/20(日) 21:41:26.66
import std.algorithm;
a[0..10].map!(x=>x.func)();

これじゃダメなん?
477デフォルトの名無しさん:2012/05/20(日) 21:49:13.62
>>475 やっぱり?
>>476 よいね
478デフォルトの名無しさん:2012/05/20(日) 21:51:52.68
素直に書けばいいだけなのでは・・・
http://ideone.com/a2yka
479デフォルトの名無しさん:2012/05/20(日) 23:25:37.69
ごめんね素直じゃなくって 夢の中なら言える
480デフォルトの名無しさん:2012/05/20(日) 23:44:42.54
思考回路は ショート寸前
今すぐ 書きたいよ
481デフォルトの名無しさん:2012/05/20(日) 23:47:08.69
ラムダ式って複文書けないのか・・・
実行されないと思ったら関数が返されてたっていうね
結果()=>{}()とか何の暗号だよ
482デフォルトの名無しさん:2012/05/20(日) 23:49:44.66
それがλ式
483デフォルトの名無しさん:2012/05/21(月) 00:20:37.03
(args){}のargsが空の時省略できる代償
Scalaに慣れてる人は戸惑いそう
それでなくとも文としての{}は単なるスコープになるし関数リテラルは=>デフォでいいんじゃ…と思ったけどコンパイル処理が
484デフォルトの名無しさん:2012/05/21(月) 05:56:35.57
結論:
関数リテラルでよかった。
485デフォルトの名無しさん:2012/05/21(月) 08:10:16.83
λ式って単に記述がシンプルに書けるってだけの存在なのかな。
486デフォルトの名無しさん:2012/05/21(月) 08:23:06.75
","演算子多用してこうぜ
487デフォルトの名無しさん:2012/05/21(月) 11:04:29.70
カンマ演算子は滅びるべき
()なし関数リテラルも滅びるべき

ラムダは言語の機能・特徴を一言で表せる点で有意義
488デフォルトの名無しさん:2012/05/21(月) 22:13:00.95
プールしたメモリを使用するnewを提供するテンプレートクラスください
489デフォルトの名無しさん:2012/05/22(火) 07:19:51.11
再利用の基準とかあるんだし
自分で作れよ
490デフォルトの名無しさん:2012/05/22(火) 16:19:22.94
条件コンパイルの version識別子を複数一括で変えたくなったとき
もうちっと気の利いた手段がほしいな

version -> ファイルをまたぐ -> static if + enum
-> 共通ヘッダにまとめて public import -> カコワルイ
491デフォルトの名無しさん:2012/05/23(水) 15:05:06.10
int型数個のみ入ったshared構造体から値コピーしてsharedを外すにはどうすればいいんですかね
492デフォルトの名無しさん:2012/05/23(水) 15:23:30.65
493デフォルトの名無しさん:2012/05/23(水) 15:27:01.76
S d = cast()s;

ideoneは古過ぎて検証目的には使えない
494デフォルトの名無しさん:2012/05/23(水) 15:46:14.06
公式サイトの和訳も、すっかり古くなってきてるなぁ・・・
495片山博文MZボット ◆0lBZNi.Q7evd :2012/05/24(木) 11:59:45.98
D言語をインストールする
http://katahiromz.web.fc2.com/d/install.html

D言語ソースにShift_JISを埋め込む
http://katahiromz.web.fc2.com/d/mbconvd.html
496デフォルトの名無しさん:2012/05/24(木) 12:10:12.52
まさか今になってD1の新規記事を書かれるとは
497片山博文MZボット ◆0lBZNi.Q7evd :2012/05/24(木) 13:50:22.41
DのWin32 APIのフルサポートをやっちゃうぞぉ! 乞うご期待。
498デフォルトの名無しさん:2012/05/24(木) 20:04:21.59
>>497
public domainで既にあるしなんで今更
しかもAPI直叩きなんてポインタの嵐でDの良さ半減しちゃう
どうせならDのサポートするOS全部サポートするGUIライブラリにしてよ
499デフォルトの名無しさん:2012/05/24(木) 20:42:58.04
まじでなんでD1
500デフォルトの名無しさん:2012/05/24(木) 21:08:57.23
我々の界隈ではD1を選択することを逃げと呼ぶ
501デフォルトの名無しさん:2012/05/24(木) 21:10:49.58
新しいGUIライブラリなんてもういらない
どうせやるなら既存のものを他のOSに対応させたり機能を洗練させたりすることに力を注いで
502デフォルトの名無しさん:2012/05/24(木) 22:04:26.39
DWTはいいぞぉ、元がSWTで使い倒されてるだけあって機能不足だけはありえない
503デフォルトの名無しさん:2012/05/25(金) 12:38:59.63
DWT をWindows で使う時ってどうなの?
ユーザー側でのランタイムのインストールとか
DLLやバイナリが水ぶくれになるとかがなければ使ってみてもいいけど
よくわからんw

気にしなくていいのかな
504デフォルトの名無しさん:2012/05/25(金) 12:54:36.64
Q. The executable are big
A. Yes, this is still a problem. A DWT application with debug info can easily grow bigger than 10 MB.
The UPX tool can often compress the executable significant.
So it probably a good advice to use UPX for the programs release version.
ttp://www.dsource.org/projects/dwt/wiki/FAQ
ttp://www.dsource.org/projects/dwt/wiki/Installation
ttp://www.dsource.org/projects/dwt
505デフォルトの名無しさん:2012/05/25(金) 12:56:56.36
wxD のがいいんじゃない?
506デフォルトの名無しさん:2012/05/25(金) 13:23:15.20
UPX使えとか投げやりな
507デフォルトの名無しさん:2012/05/25(金) 13:43:58.15
>>504
ありがと
サイズの小さいやつを見かけて もしやと思ったけど残念

>>505
更新されてるのん?
508デフォルトの名無しさん:2012/05/25(金) 15:13:04.57
immutable(byte)[] bytestring = ['a','b','c'];
string text = bytestring.to!string;
writeln(text);
writeln(text.length);
509デフォルトの名無しさん:2012/05/25(金) 15:23:01.43
DWTはD2へのインストール法がわからん。
510デフォルトの名無しさん:2012/05/25(金) 20:14:28.73
>>509
D1と同じやり方で使える
んだけど、実はsubmoduleが最新になってないことがあるので
最新のD2で使うにはpullかけて更新しなきゃいけなかったりする

git clone https://github.com/d-widget-toolkit/dwt.git
cd dwt
git submodule init
git submodule update
git submodule foreach git pull origin master  <- 全submoduleのpull
rake base swt


wxDはTreeCtrlがまともに動かなかったのは直ってるのかなぁ
511デフォルトの名無しさん:2012/05/25(金) 21:55:26.78
>>510
サイトに書いてあるインストール法とチガ(ry

冗談はさておき、pullを含めてもエラーはstd.loader。
dwt/base/src/java/nonstandard/SharedLib.d(8):
Error: module loader is in file 'std/loader.d' which cannot be read

環境はarchのdmd2-git最新だけど、Linuxの開発者いないのかな。
512デフォルトの名無しさん:2012/05/25(金) 22:13:25.07
2.059タグからstd.loaderを持って来たけど、
core.thread.Thread.sleepのdepricatedで止まった。
やはり向いてないのであきらめる。
513デフォルトの名無しさん:2012/05/25(金) 22:34:50.53
>>511
linuxは手出してないわ…すまぬ
たぶん2.059の崩壊的変更で死んでると思う
514デフォルトの名無しさん:2012/05/25(金) 22:54:10.77
>>510
お礼忘れてた。とんくす。

>>513
DはWin率が高い気がするな。
515デフォルトの名無しさん:2012/05/25(金) 23:25:45.42
メリットないからな
516デフォルトの名無しさん:2012/05/25(金) 23:56:30.22
linuxの場合はそれこそGtkDとかが相性良さそうな気がするな
Windowsで使うとDLLだらけになって死ぬ
517デフォルトの名無しさん:2012/05/26(土) 00:36:50.00
GtkDはtypedefをaliasに直す作業がいる
518デフォルトの名無しさん:2012/05/26(土) 01:01:10.42
class A{}
class B : A{}

A b = new B();
typeof(b) ←A

実際のインスタンスの型のBが知りたい場合どうすればいい?

519デフォルトの名無しさん:2012/05/26(土) 01:07:29.50
A a;
if (なんか分岐)
  a = new B;
else
  a = new C;
こうなると「型」を得るのは無理。
実行時型情報ならclassinfoプロパティで取れる
writeln(a.classinfo);
520デフォルトの名無しさん:2012/05/26(土) 01:22:38.19
可能性のある型全部にcastしてみるとか
521デフォルトの名無しさん:2012/05/26(土) 14:53:36.76
classinfoどうもです
522デフォルトの名無しさん:2012/05/26(土) 16:50:46.09
>>511
Ubuntu10でやってみたけどstd.loaderがなんとかとは言われなかった
何か別の問題があるのかなぁ

以前はlinuxの方メンテしてくれてた人がいたんで当て込んでたんだけど動きない…
とりあえず動くようにはしてpull request出しときました
523デフォルトの名無しさん:2012/05/26(土) 16:54:13.60
あれ、というかArch版Phobosにはstd.loader無いの?
524デフォルトの名無しさん:2012/05/26(土) 17:23:36.68
>>522
調べたら2.059以降に削除。かなり昔にdepricatedが出てる機能。
ただ2.059で入れ直しても別のdepricatedエラーで無理だったからメンテナが居ないっぽい。
525デフォルトの名無しさん:2012/05/26(土) 17:39:56.23
するとphobosは標準で動的ロードができないのか
tangoの時代来るな
526デフォルトの名無しさん:2012/05/26(土) 18:25:00.08
tangoはもう眠らせてやってくれ
527デフォルトの名無しさん:2012/05/27(日) 00:29:57.33
というかいい加減眠ってくれ
528デフォルトの名無しさん:2012/05/27(日) 17:31:27.41
これの処理結果はどうなる?
assert([] == null);
assert("" == null);
assert([] is null);
assert("" is null);
529デフォルトの名無しさん:2012/05/27(日) 18:40:21.65
1.空配列はnull
2.文字列比較演算子オーバーライドでnullと判断される?
3.空配列はnull
4.""は'\0'が末尾に付くのでnullじゃない
530デフォルトの名無しさん:2012/05/27(日) 19:45:50.37
Dの空文字列は[]じゃないの?どちらにしてもemptyの使用を推奨
531デフォルトの名無しさん:2012/05/27(日) 19:49:09.79
""は長さは0だけど、C(ゼロ終端)用に、その奥にヌル文字が付いてる。ただしリテラルに限る
532デフォルトの名無しさん:2012/05/27(日) 20:06:16.29
コンパイルエラー
false
コンパイルエラー
false

でw 適当ww
533デフォルトの名無しさん:2012/05/27(日) 20:41:44.70
バグくさいけど
知っておかないとそのうち痛い目に遭う
534デフォルトの名無しさん:2012/05/27(日) 22:06:59.07
仕様通りじゃね?
俺は不思議には思わん
535デフォルトの名無しさん:2012/05/27(日) 23:06:54.64
true
true
true
false -- assertion error

2番目が false あるいはコンパイルエラーなら納得できるんだが
暗黙変換でもしてるのか?
536デフォルトの名無しさん:2012/05/27(日) 23:11:05.81
配列の==比較は
1. 長さをチェックして異なればfalse
2. 各要素foreachで、==演算子がfalseならfalse
3. trueを返す
2番は両方の要素数が0ならそもそも行われないので
falseを返す要素が無いのでtrue
537デフォルトの名無しさん:2012/05/27(日) 23:15:51.26
公式の等値式と同一性式を参照
== nullはコンパイルエラーで弾かれてほしい
538デフォルトの名無しさん:2012/05/29(火) 22:12:53.71
COMと相性悪いのか知らんがダイアログが開いた途端落ちるのは何でだぜ
http://ideone.com/XJrlq
539デフォルトの名無しさん:2012/05/29(火) 22:18:45.31
>>538
俺もwin32API使うときにそうなったけど、何が原因だったんだっけなぁ。
ポインタ周りだったかなぁ。
540デフォルトの名無しさん:2012/05/29(火) 22:45:37.79
>>538
CoCreateInstanceが成功してるならIFileOpenDialogの定義が間違ってるとか?

後はIFileOpenDialogの使い方自体だけどよくわからんな
Vista以降の割と新しいIFだからWinMainから呼び出さないと死ぬとか?

COMはいろいろ使ったけど困ったことないなあ
541538:2012/05/29(火) 23:10:18.59
GetOpenFileNameでも同じ結果のようだ
ただ、フック掛けると古いスタイルのダイアログになるんだがそのときは成功する

>>540
宣言は間違ってないし、C++でほぼ同じ感じでmainから呼び出すと成功する
542デフォルトの名無しさん:2012/05/29(火) 23:17:06.21
もしかしてエラー6BA?
543デフォルトの名無しさん:2012/05/30(水) 08:03:06.73
>>538
勘で答えるけどIFileOpenDialog* dlg;ではなくて?もしくはcast(void*)か
544片山博文MZボット ◆0lBZNi.Q7evd :2012/05/30(水) 08:28:54.84
Segmentation faultが発生する。なぜだか分からん。教えてくだされよ。
http://codepad.org/jrhvKyNv

あと、Dで64ビットプログラムは作れますか?
545デフォルトの名無しさん:2012/05/30(水) 08:37:34.97
64bitコードを吐けるDを実装したら作れるだろ
546538:2012/05/30(水) 10:57:35.81
>>542
もうちょっとkwsk

>>543
Dではinterfaceはclass同様ポインタなんだ
そもそもそこの宣言が間違えてたらダイアログを開くことすら出来ない(Access Violationでね)
問題なのはダイアログが表示されてから落ちることなんだよね
547デフォルトの名無しさん:2012/05/30(水) 12:07:34.51
>>546
詳しくは忘れたけど

GetOpenFileNameやリストビューなんかのWinのコントロールは
何のためか忘れたけど内部で必ずエラーコードとしてトラップされる
値を返す構成になってて、そのコードが6BAって感じだったはず

前者はダイアログが表示されてから、後者はフォーカスを持ったら
値が返ってくる感じになってる
548デフォルトの名無しさん:2012/05/30(水) 12:36:34.07
>>544
プログラムが終了した時にデストラクタが呼ばれるけど、その時には標準出力が閉じてるから。
内部のオブジェクトがすぐに解放されないのは、その時点で本当に使われてないのか判断できないから。

あと、適当にリファクタリングしてみたw
重複コードがどうにかならないか検討中・・・
http://codepad.org/QXAeG2aJ
549デフォルトの名無しさん:2012/05/30(水) 12:39:20.26
>>548追記
型比較するだけなら、.nameいらないみたい。
550片山博文MZボット ◆0lBZNi.Q7evd :2012/05/30(水) 13:08:07.27
>>548-549 有難うございます。GCってあまり賢くないのですね。。。
551デフォルトの名無しさん:2012/05/30(水) 13:11:34.91
>>550
いやいや。
単純に内部のオブジェクトが別の場所で参照されてる可能性を考えてるだけ。
552片山博文MZボット ◆0lBZNi.Q7evd :2012/05/30(水) 13:43:28.67
RbArrayの中身がうまく解放されるようにするにはどうすればいいですか?
553デフォルトの名無しさん:2012/05/30(水) 14:10:52.74
>>552
単純な方法は、RbArrayのデストラクタで、内部のオブジェクトを明示的にdeleteする。
ただし、親のRbArrarも明示的にdeleteされる必要がある制約が付く。
554片山博文MZボット ◆0lBZNi.Q7evd :2012/05/30(水) 14:34:53.00
これってバグかなあ。フォーラムで報告した方がいいかなあ。
555片山博文MZボット ◆0lBZNi.Q7evd :2012/05/30(水) 14:47:49.93
556デフォルトの名無しさん:2012/05/30(水) 15:40:17.11
プログラム終了時のデストラクタでオブジェクトの参照をするのは
もともと正しく動かないと言われているよ
557デフォルトの名無しさん:2012/05/30(水) 15:52:26.52
さらにリファクタリング。
と、D1/D2両対応する試み。(中途半端w)
http://codepad.org/pkCB9GNK

・・・結構大変だったの!w
558デフォルトの名無しさん:2012/05/30(水) 15:56:03.65
んー。不具合なのかな。
リソース持つ物はそういうもんだと思ってた。
559デフォルトの名無しさん:2012/05/30(水) 16:06:29.44
ところがドッコイ、仕様です!

http://www.kmonos.net/alang/d/2.0/class.html
GC が参照されなくなったオブジェクトを必ず解放するという保証はありません。
さらに、 GC がデストラクタを呼び出す順番も保証されません。
これはつまり、 GC管理下にあるオブジェクトへの参照をメンバとして持つオブジェクトのデストラクタを ガベージコレクタが呼び出すときには、それらの参照は既に無効となっている可能性があるということです。
従って、 デストラクタからはメンバオブジェクトを参照できません。
この規則は、 autoオブジェクトや DeleteExpressionで削除されるオブジェクト (GCが自動で解放することはないので、参照は必ず有効)には当てはまりません。
560デフォルトの名無しさん:2012/05/30(水) 16:22:05.48
>>559って、一般的なGCのあるオブジェクト指向言語だと当たり前だと思ってた。
Disposeせな。
561デフォルトの名無しさん:2012/05/30(水) 16:26:35.12
当たり前かな?
GCも作成順と逆順を保証してくれるのは結構ある気がする。
562デフォルトの名無しさん:2012/05/30(水) 16:34:39.16
>>561
賢いのもあるんだなぁ
でもそうすると、複数オブジェクトの中で参照が循環しちゃうと、誰にも開放できないのが出来ちゃうんじゃないか?
親が消えれば必ず子が消えなければいけないというのも、不便かも。
563デフォルトの名無しさん:2012/05/30(水) 16:37:40.70
>>562
参照カウンタじゃあるまいし。
564デフォルトの名無しさん:2012/05/30(水) 17:20:23.19
でもそれでも循環参照が発生すれば結局segfaultも発生すると思うよ
565デフォルトの名無しさん:2012/05/30(水) 19:03:53.80
日本語訳が更新されたっぽいぞ!
http://www.kmonos.net/alang/dd/
566デフォルトの名無しさん:2012/05/30(水) 19:34:34.94
「Dがもう一個」の名言が消されてるからむむ、と思って概要を見に行ったら
あのマスコットはまだ頑張っていて絶望した
567デフォルトの名無しさん:2012/05/30(水) 19:42:16.98
>>555
バグじゃないよGC持ってる系の言語初めて?
568デフォルトの名無しさん:2012/05/30(水) 20:25:02.27
今日、D1の仕様和訳が、誤訳ってレベルじゃ無いってくらい、間違いだらけなのに気づいた。
まあ、D1だけどねw
569デフォルトの名無しさん:2012/05/30(水) 20:49:17.52
暇にかまけて作ってしまった。後悔はしていない。
ttp://www.dotup.org/uploda/www.dotup.org3038466.png

っていうか、オリジナルのテイストって結構難しいな。
570デフォルトの名無しさん:2012/05/30(水) 20:50:42.09
>>569
ああ・・・次はアクションゲーム部分だ・・・
571デフォルトの名無しさん:2012/05/30(水) 20:58:10.10
え?アクション?えぇ??ちょっ・・・。Orz

うーん。D自体を触ったのが大分前なんだよなぁ。うーん。
ウィンドウが出て画像が貼れるライブラリってどれなんだろう。
SDLはよくわからないから普通のGUIキットがいいなー。速度、度返しで!
572デフォルトの名無しさん:2012/05/30(水) 21:08:27.31
AliasThisテンプレート。
D1でD2のAlias thisの再現をする試み。
全然洗練されてないけど出しちゃうww
http://codepad.org/ombQzFd1
573デフォルトの名無しさん:2012/05/30(水) 21:12:01.39
アクションゲーム作るなら普通のGUIツールキットは使いづらいんじゃないかなぁ
それこそSDLとかのほうがやりやすい
574デフォルトの名無しさん:2012/05/30(水) 22:00:21.15
せっかくだし、共同制作でもしようぜ!
とりあえず仕様決めよう。
http://sourceforge.jp/projects/d-action/wiki/FrontPage

アクションゲームでいいんだよね?
どんなアクションゲームにする?

あと、>>569とは別人です。
575デフォルトの名無しさん:2012/05/30(水) 22:25:45.01
>>569の画像って使ってもいいのかなー。
576デフォルトの名無しさん:2012/05/30(水) 22:28:09.04
dxlib4dとか最近あるよ
簡単だし、いいんじゃないかな
577569:2012/05/31(木) 02:41:56.42
>>573
うーん。そうですかねー。うーん。

>>574
アカウントとったんですか!!!!!
仕事早すぎですよ。

>>575
欲しければMQO上げますけど。元画像の版権のことは知らない!
ちなみに、トランスフォーム済みでボーンとかは入ってません。
ムラムラして1時間で作ったんで・・・。

>>576
ほえー。それは楽そうですね〜。
578577:2012/05/31(木) 02:57:20.55
ファイルで上げるの面倒なので、いでおんに投げておきました。
ttp://ideone.com/dH3p0

主要データをまるっとテキストエディタにコピーして、.mqoのファイルに保存してください。
メタセコイア良すぎる!!

ライセンスは面倒なので以下を適応します。
ttp://www.kmonos.net/nysl/nysdl.ja.html

そこの作者の人の成果物にはお世話になったので自分も真似てみるてすと。
何が出るかな!何が出るかな!!
579片山博文MZボット ◆0lBZNi.Q7evd :2012/05/31(木) 10:59:08.77
this(int i) { ... }
this(long l) { ... }
this(double d) { ... }
このようなコンストラクタの呼び出しのあいまいさを回避する方法ありますか?
580デフォルトの名無しさん:2012/05/31(木) 12:26:32.97
>>577-578
まさかのハードコードww
まあ、実用上は問題ない。

画像が欲しかったのは、プロジェクトロゴに使いたかったからで、実際のゲームに使われるかどうかは知らないw
581デフォルトの名無しさん:2012/05/31(木) 12:34:39.37
>>579
あいまいさの意味はわからないが、

呼び出し側で、型指定すればいい。
引数に、
cast(int)
cast(long)
cast(double) をつける。
582片山博文MZボット ◆0lBZNi.Q7evd :2012/05/31(木) 12:44:29.60
>>581 有難う御座います。
583538:2012/05/31(木) 14:06:37.21
バカな・・・
-L/SUBSYSTEM:WINDOWS:4.0で直った・・・だと・・・
M$は俺に謝罪しろ!今すぐにだ!
584デフォルトの名無しさん:2012/05/31(木) 14:23:37.51
>>583
defファイル渡してなかったってオチ?w
585デフォルトの名無しさん:2012/05/31(木) 14:35:25.51
>>583
4.0ってだいぶ古いぜ?
指定するなら少なくとも5.0(Windows 2000)にしたいし、それで動かないならAPIの宣言が古いんだろう。
586538:2012/05/31(木) 14:51:10.07
>>584
VisualDに任せっきりなのでdefファイルてのは分からん

>>585
どっかで見たのが4.0だったんで特に意味は無い
でもありがとう5.0かそれ以上にしとく
587デフォルトの名無しさん:2012/05/31(木) 18:52:23.64
>>579
あいまいになりようがなくね?
588デフォルトの名無しさん:2012/05/31(木) 20:23:19.10
>>580
あ、それなら使ってもいいですよ。
あと、一般的な汎用の大の字のモデルを作るのはそんな難しくは無いですね。
589デフォルトの名無しさん:2012/05/31(木) 20:44:12.44
>>580
あ、そうそう。ハードコードじゃないです。
メタセコイアっていうモデリングソフトがあるんですけど、それのLE板で作りました。
http://www.metaseq.net/metaseq/

とてーもいいソフトなのでムラムラしたらためしてみるといいと思います。
俺は、シェア版欲しいんだけど、迷ってるところです。
590デフォルトの名無しさん:2012/05/31(木) 22:44:37.01
import std.net.curl;すると隣家に怒られるんだけどもしかして外部のライブラリを拾ってこないとだめ?
環境はwindowsです
591デフォルトの名無しさん:2012/06/01(金) 02:09:34.61
やってみたけどバイナリ拾ってきて自分でimplibしたら一応使えた
592デフォルトの名無しさん:2012/06/01(金) 09:21:34.65
Ubuntu Linuxでもリンクエラーが出る
% dmd -ofdt dt.d -L-lcurl
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libphobos2.a(curl.o): In function `_D3std3net4curl4Curl19_sharedStaticCtor28FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor28FZv+0xf): undefined reference to `curl_global_init'
593片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 16:24:38.48
D1とD2を両方インストールする
http://katahiromz.web.fc2.com/d/instboth.html
594片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 16:28:02.53
AliasThis(修正済み)
http://codepad.org/FyQaxFrm
595デフォルトの名無しさん:2012/06/01(金) 16:43:10.26
dlang.orgもdigitammars.comもどうしちゃったん?
596デフォルトの名無しさん:2012/06/01(金) 16:53:31.72
>>594
おお、修正したか!
597片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 17:01:03.40
opIn, opIn_rがD1で動作しないみたいだが。。。
598片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 17:19:12.65
>>595 Digital Daemonというタイトルで戦闘機に乗った赤い悪魔が表示される。
599デフォルトの名無しさん:2012/06/01(金) 17:19:48.95
>>597
あー、そういえばin演算子だけ、戻りの型が元の型と違うんだった。
is(Base T: T[])なら、T opIn(Base)だw
あとopInAssign()もいらなかったw
600デフォルトの名無しさん:2012/06/01(金) 17:20:50.46
いや、T* opIn(Base)か?
どっちかなw
601デフォルトの名無しさん:2012/06/01(金) 17:25:13.48
ちげえ、T* opIn(T)かw
もう、分けわかんなくなってきた。
602デフォルトの名無しさん:2012/06/01(金) 17:27:05.88
と思ったら、もう修正してあるのか・・・ すまん。
603片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 17:33:08.27
opAssignを削った。
http://codepad.org/ag57xGM2
604片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 17:36:35.73
>>603 ごめん、間違えた。
605デフォルトの名無しさん:2012/06/01(金) 17:40:38.89
>>603
ん? よく見たら戻りの型がポインタじゃない?
606片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 17:45:05.82
>>594が正しくて、>>603が間違いです。
607デフォルトの名無しさん:2012/06/01(金) 18:57:45.04
超オッケー!
http://codepad.org/prMuyK0w
608デフォルトの名無しさん:2012/06/01(金) 19:37:44.19
なんで今さらD1なんかで盛り上がってんだ?
609デフォルトの名無しさん:2012/06/01(金) 19:38:20.51
陰謀を感じる
610デフォルトの名無しさん:2012/06/01(金) 19:55:04.89
D1が完全終了するのは今年末だっけ?
半年しかないぞ
611デフォルトの名無しさん:2012/06/01(金) 21:37:04.62
いつも終わったところで車輪の再発明するそういう趣味なんだよほっといてやれ
612デフォルトの名無しさん:2012/06/02(土) 00:37:47.20
>>569 >>574
メタセコイア用のローダ書いたのでよかったらお使いやがれください。
ttp://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
613デフォルトの名無しさん:2012/06/02(土) 01:08:33.74
>>612
超いい仕事した
614デフォルトの名無しさん:2012/06/02(土) 01:37:55.66
>>612
おー、まわる〜。
615デフォルトの名無しさん:2012/06/02(土) 02:05:51.07
>>612
すげー。
俺もパースしようと何度か挑戦したけど、いつもエネルギー切れて中途半端になってしまう。
めちゃくちゃ感動した。
616デフォルトの名無しさん:2012/06/02(土) 05:50:05.78
コードがちゃんとDっぽい
つーかこれに地味に感動した→ "Dさん.mqo".read.to!string

俺もmqoパーサ書いたけどmqoってsjisなんだよなあ
readLineで読んでるんだけどファイル中に全角文字が来ると落ちる・・・
617デフォルトの名無しさん:2012/06/02(土) 08:23:00.41
immutableなデータをdeleteするなんてことが許されていいんですか!?
618デフォルトの名無しさん:2012/06/02(土) 18:19:43.63
>>612
sworks.compo.*も自作?
619デフォルトの名無しさん:2012/06/03(日) 03:18:52.09
>>613-616 あざーーす
>>616 なんちゃってsjis対応しました。
ttps://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
utf8と32以外の文字コードなんて滅びてしまえばいいのに

>>618 自作です。シコシコ作っては再利用できそうなのを集めてるんだけど意味フなバグが散見されます。

で、次は動かしたいと思うのが人情なんだが、アニメーションを記述するのでメジャーなのってなにがあるんだろう?
620デフォルトの名無しさん:2012/06/03(日) 04:21:43.03
3Dの一般的なモーションデータならbvhらしいけど、メタセコ特化ならmikotoやMMDの形式はどうだろう
621デフォルトの名無しさん:2012/06/03(日) 12:38:45.42
sjis対応乙したー
使う場合ライセンスとかどう扱えば良い?
622デフォルトの名無しさん:2012/06/03(日) 14:14:04.32
socketstreamのavailableが常に0で来る・・・
623デフォルトの名無しさん:2012/06/03(日) 16:01:59.28
std.streamのreadLineはseekableなstreamにしか"\r\n"改行対応してないせいで
seekableではないstreamであるsocketstreamを使ってHTTPやろうとしても
http応答のヘッダ最後の空行を読みきれなくて(\rだけ読んで満足してそのあとの\nを読まない)
本体データの先頭に"\n"が混入するんだけどスマートな回避策ないですか?
624デフォルトの名無しさん:2012/06/03(日) 16:06:04.84
UTF16を可変長にしたやつが悪い
CJKの要求全部まとめて突っぱねればよかったんや
625デフォルトの名無しさん:2012/06/03(日) 19:32:15.03
DWT2からstd.loader排除したやつマージされた
626デフォルトの名無しさん:2012/06/03(日) 19:53:27.31
>>623
socketstreamはオワコン
627デフォルトの名無しさん:2012/06/03(日) 19:57:08.09
やだなーオワコンなものがいつまでもDの標準ライブラリに在り続けてるわけないじゃないですか
628デフォルトの名無しさん:2012/06/03(日) 22:20:47.31
std.openrj
std.regexp
std.socket
std.stream
std.cstream
std.bindやらやら
629デフォルトの名無しさん:2012/06/03(日) 22:21:12.30
socket関係ねえや
630デフォルトの名無しさん:2012/06/03(日) 23:23:43.30
>>620
㌧ちょっとくぐってくる
631片山博文MZボット ◆0lBZNi.Q7evd :2012/06/04(月) 08:44:34.36
>>607 今度はD2で動作しない。
D2のalias thisはopInをオーバーロードしていないみたい。
632デフォルトの名無しさん:2012/06/05(火) 03:41:03.06
>>620 mikoto のファイルフォーマットがメタセコのとほぼ一緒だったのでとりあえず"読み込みだけ"できるようにした。
ttps://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
.mkm と .mki ただ、BVertexの対応先送りにしてたのでmikotoの出力する .mqo は読めませんorz
あとなんか、モーション⇔モデルの紐付けがわからねえ

>>621 あざす。ライセンスはCC0です。
633デフォルトの名無しさん:2012/06/05(火) 04:06:23.87
>>631
(key in object)で発生するのはobject.opIn_r(key)なのでそっちを定義したほうがいいんじゃないかな
634デフォルトの名無しさん:2012/06/05(火) 19:39:05.94
>>632
mikotoはよく知らないけど一般的にモーション⇔モデルって関係はなくてボーン⇔頂点じゃない?
635デフォルトの名無しさん:2012/06/06(水) 00:40:20.20
>>632

しかし、俺は使ってる側なので実装はわからず、これ以上お役に立てないなあ、スマソ
636デフォルトの名無しさん:2012/06/06(水) 03:34:13.76
OpenRDB のサイトが役に立つかもしれない
ちらっとしか見てないけど
637デフォルトの名無しさん:2012/06/06(水) 04:40:19.45
>>632
DさんにMikoto式ボーン入れてみたよ。RokDeBone2でも動くかも??あ、一ヶ月くらいで消えるよ。
ttp://www1.axfc.net/uploader/File/so/79720.zip&key=2ch

ボーン自体はオブジェクト欄の bone|hoge って書いてあるのがボーン。実装は線と三角形の連なり。でも骨。
ボーンの影響範囲を決めるのが anchor|hoge ってかいてあるのが、アンカー。
箱のマテリアルとボーンのマテリアルがひもづけられてる。箱の中の頂点がボーンの影響範囲。
ボーンのつなぎ目で箱が重なってるところが関節。

って感じじゃないかな。

久しぶりにボーン入れたから、時間かかっちゃった。
何が出るかな。何が出るかな。
638デフォルトの名無しさん:2012/06/06(水) 20:35:50.66
emplaceしたインスタンスをdeleteしてもemplace元の配列を使えちゃうけど合法?
合法なら嬉しいけどdeleteしたらメモリは即座に解放って仕様と違う気がする
http://ideone.com/C1BKV
639デフォルトの名無しさん:2012/06/07(木) 00:14:57.23
>>638
deleteはオワコン(代わりにclear関数、どうしてもメモリ解放が必要不可欠な場合のみGC.freeを使う)
640デフォルトの名無しさん:2012/06/07(木) 00:27:52.39
既存クラスのデストラクタを呼びたいんだよね
641デフォルトの名無しさん:2012/06/07(木) 00:49:52.33
プロパティの返すクラス参照のアドレスを取ろうとしたらdelegateが取れたでござるの巻
642デフォルトの名無しさん:2012/06/07(木) 12:55:59.45
>>638
Cと同じで未定義動作なんじゃねーの。
643デフォルトの名無しさん:2012/06/08(金) 08:21:08.85
std.datetimeを使うための専用記事が・・w
644片山博文MZボット ◆0lBZNi.Q7evd :2012/06/08(金) 13:14:43.45
645デフォルトの名無しさん:2012/06/08(金) 13:16:15.18
なつかしい
646デフォルトの名無しさん:2012/06/09(土) 02:31:04.76
>>634-636
あざす!ちょっと勉強します。
OpenRDB!こんなのあったのか!ググルスキル不足でした。
>>637
すげーお!踊ってるお!ありがたく使わせていただきまス!
アンカーの入れ方が勉強になる!Motionは入れ子にできるのかー

>>644 やねさんはD言語のことわすれてしもたん?
647デフォルトの名無しさん:2012/06/09(土) 23:14:21.48
DFLは生きてるけどdfl.exeは実質死んでるのな
648デフォルトの名無しさん:2012/06/09(土) 23:30:28.01
古いDMDで一回ビルドすればそれっきりだからw
649デフォルトの名無しさん:2012/06/12(火) 11:03:47.27
@property void myDelete(T)(out T o) { o.clear(); o = null; }
650デフォルトの名無しさん:2012/06/12(火) 11:54:40.30
obj.myDelete;
651デフォルトの名無しさん:2012/06/14(木) 19:21:53.09
妄想構文集

後置if,後置while:
foo() if (cond);
foo() while (cond);

後置with:
exp with { t; /* same as exp.t */ }

変数宣言でタプルを分解:
(int x, int y) = returns_coordinate_by_tuple();
(auto x, y) = returns_coordinate_by_tuple();

関数型をArrowで書ける:
T->T->T succ(T)(T->T->T n) { ... }

ブロック構文:
repeat(10) (n){ writeln(n); }
10.times (n){ n.writeln(); }

652デフォルトの名無しさん:2012/06/14(木) 20:06:15.13
recursive(i=0;MAX!=0;++i){a(i);if(i<MAX)repeat;else b(i);c(i);} //a(0)a(1)a(2)b(2)c(2)c(1)c(0)
breaker(x){case 0:break;a();case 1:break;b()case 2:break;c();} //x > 2 ... a()b()c()
653デフォルトの名無しさん:2012/06/14(木) 20:49:31.33
アローはないだろうな同じ見た目でC/C++と全く別の動きするのは採用しないから
あとブロック構文は砂糖臭が・・

import std.stdio;
import std.range;

@property auto times(T)(T n){return n.iota();}
void main(){
  foreach(n; 10.times){n.writeln();}
}
でもこれはこれでいまいちだった
654デフォルトの名無しさん:2012/06/15(金) 01:45:30.37
Pythonみたい
655デフォルトの名無しさん:2012/06/15(金) 08:34:00.30
>>651
>後置if,後置while:
ぶら下がり文でよくね?(今も使えるし)
if(cond) foo();
while(cond) foo();

>後置with:
もっと簡略化してもいいのかもしれない。
with exp, sym, tem; //このスコープに exp, sym, tem の中身を展開!w って、これどこのusing?

>変数宣言でタプルを分解:
きっと、Dのタプルを使ったことが無いんだろうな。うん。

>関数型をArrowで書ける:
これはみんな楽に書きたいと思ってるよなww
俺的にはラムダ式風にこう書きたい。
(int, string)=>char //char delegate(int, string)
もしくは・・・
char<=(int, string) //char delegate(int, string) //function? 知るか。

>ブロック構文:
foreachじゃだめか?
foreach(n; 0..10) { writeln(n); }

もしくは、repeat関数でも定義するかw
void repeat(T)(int, void delegate(T));


ああ、PHPの文字列リテラル内での変数展開が真面目に欲しい・・・
PHPそのままの構文だとちょっと使いづらいから改良して・・・
Point a = { x:12, y:56 };
writeln("x = $a.x; , y = $a.y;"); //x = 12 , y = 56
656デフォルトの名無しさん:2012/06/15(金) 08:52:57.49
いつのまにか関数がタプル返せるようになったの?
657デフォルトの名無しさん:2012/06/15(金) 09:47:18.21
import std.stdio;

struct Tuple(T...)
{
T tuple;
alias tuple this;
}

Tuple!(char, ubyte) foo()
{
return typeof(return)('F', 16);
}

void main()
{
auto v = foo();
writeln(v[0], '=', v[1]);
}
658デフォルトの名無しさん:2012/06/15(金) 09:49:43.78
しまった、F=15じゃねーか
659デフォルトの名無しさん:2012/06/15(金) 17:28:18.77
継承に似たような機能っていろいろあるな、と思ってまとめてみた
間違ってたら修正してちょ
http://wikiwiki.jp/dlang/?%B7%D1%BE%B5
660デフォルトの名無しさん:2012/06/16(土) 11:36:26.56
>659
interfaceのfinallyの継承とか入れてあげてもいいんじゃない
661デフォルトの名無しさん:2012/06/18(月) 22:58:24.25
2.060まだかな
662デフォルトの名無しさん:2012/06/18(月) 23:01:13.03
D4きたー
663デフォルトの名無しさん:2012/06/19(火) 00:24:12.85
まぼろしのD4プリンセス
664デフォルトの名無しさん:2012/06/19(火) 01:33:24.95
D4U
665デフォルトの名無しさん:2012/06/19(火) 01:39:48.58
D or Alive
666デフォルトの名無しさん:2012/06/19(火) 01:51:22.42
いともたやすく行われるえげつない仕様変更
667デフォルトの名無しさん:2012/06/19(火) 02:36:18.49
まだ開発中らしいけど 2.059が動いた
ttp://dpaste.dzfl.pl/
668デフォルトの名無しさん:2012/06/19(火) 06:10:02.29
tangoってまだ生きてたのか
誰得
669デフォルトの名無しさん:2012/06/20(水) 00:49:58.16
・・・・・・・・・・
わかりかけてきたぞッ!!
ttps://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
670デフォルトの名無しさん:2012/06/20(水) 01:04:57.89
class C{@property static int opCall(){return 0;}}
void main()
{
  C * 1; // @property効かない・・・
}

>>669
更新おつかれさま
671デフォルトの名無しさん:2012/06/20(水) 01:18:04.86
>>669
SUGEEE!!
672デフォルトの名無しさん:2012/06/20(水) 01:47:55.16
>>670
それって Cのポインタ変数になるんじゃね?
673デフォルトの名無しさん:2012/06/20(水) 07:30:51.27
>>669
おぉー。ちゃんと動いてる・・・。
短期間にここまで出来るってすごいね。
俺、理数系はダメだから、称賛する。
674デフォルトの名無しさん:2012/06/20(水) 11:47:22.26
クラスは参照型でポインタを含むからクラスのポインタとするとポインタのポインタになっちまう
675デフォルトの名無しさん:2012/06/20(水) 12:52:31.50
Dのクラスが参照型なのはわりと大きなC++との違いで評価されるべきところだと思う
676デフォルトの名無しさん:2012/06/20(水) 13:48:12.54
>>669
おお。
プロジェクト主なのに作業進めてなくてサーセンw
677デフォルトの名無しさん:2012/06/20(水) 14:26:29.82
VisualD 0.3.33
678デフォルトの名無しさん:2012/06/20(水) 15:58:34.30
scopeストレージクラスはそのうち仕様から消えるからこれでいいよ

import std.typecons;
class MQOTest;
void main()
{
auto wnd = scoped!MQOTest;
wnd.mainLoop;
}
679デフォルトの名無しさん:2012/06/20(水) 16:53:00.06
scopeは外から来た変数を代入すると動作が怪しくなるという欠陥があるからなあ
本来scope/TLS/sharedが排他的な属性でないとならない
680デフォルトの名無しさん:2012/06/20(水) 18:31:33.60
class C {
 lazy obj = new Object;

 void method() {
  lazy o = new Object;
  // ...
 }
}

こんな構文が欲しい…
フィールドの初期化がコンパイル時にしかできないのが地味に不便
681デフォルトの名無しさん:2012/06/20(水) 22:37:02.29
>>678
そんなテンプレートがあるって事は、必要な機能なわけで。

>>680
構造体を使ってみるとか。
あと、ローカル変数はそれできるよね。
http://ideone.com/NZJLE
682デフォルトの名無しさん:2012/06/20(水) 22:46:18.19
>>681
あ、確かに
遅延評価変数は微妙にほしかったりしてたので混ざっちゃったのぜ
683デフォルトの名無しさん:2012/06/21(木) 00:18:17.77
>>681
scopeのdeprecatedいつのまに外れたの?
684デフォルトの名無しさん:2012/06/21(木) 00:36:04.56
scoped!のスコープ外への持ち出し規制は自己責任でってのも言語のコンセプトと合わないよなあ
685デフォルトの名無しさん:2012/06/21(木) 00:45:18.95
そのコンセプトはSafeDに引き継がれました
686669:2012/06/21(木) 04:28:55.58
おまいらレスありがd
>> 678 あそっか、scope なくなるの忘れてた
と思ったら >>683 なくならないのか!?
なんにしてもクラス定義時に「ねっ!ほら!僕、終了処理いるから!scopeだから!ねっ!?」
ってできるなにかがほしいんだよな。
687デフォルトの名無しさん:2012/06/21(木) 04:58:36.98
デストラクタとファイナライザみたいなものが欲しいと
688デフォルトの名無しさん:2012/06/21(木) 08:54:29.99
>>683
英語の仕様はつい最近に確認で読み始めたばかりだから知らね。

>>686
この前scopeクラスなるものがあることを知ってちょっと驚いた。
仕様かなり読み込んでたのになー
689デフォルトの名無しさん:2012/06/21(木) 12:03:15.33
tango
690デフォルトの名無しさん:2012/06/22(金) 01:36:14.98
コンストラクタ以外でconstメンバに値設定できないかな
同じくconstのインスタンスを最初の一回くらい設定できてもいいのに
http://ideone.com/UEX7j
691デフォルトの名無しさん:2012/06/22(金) 01:50:36.59
そういうクラスか何かを作ればいい
692デフォルトの名無しさん:2012/06/22(金) 02:06:46.48
>>690
privateにしてgetプロパティを付ける。

mutable変数に値を設定してconstにcastする。
693デフォルトの名無しさん:2012/06/22(金) 02:59:15.68
Dの標準ライブラリにリストのテンプレートとかないんですか?
694デフォルトの名無しさん:2012/06/22(金) 08:40:54.38
配列のプロパティでvector相当の事出来るからなあ
欲しいなら自分で作るとか
695デフォルトの名無しさん:2012/06/22(金) 14:44:44.56
std.container
RedBlackTreeは使える
696デフォルトの名無しさん:2012/06/23(土) 02:13:18.50
SListなかった?
697デフォルトの名無しさん:2012/06/23(土) 06:55:47.71
dmdでリストファイル指定する時@付けないといけないのシェルの補完効かなくてめんどい
698デフォルトの名無しさん:2012/06/23(土) 11:30:21.23
hoge.txtと一緒に@hoge.txtみたいな空のファイルを作っておけばいいんじゃね?
699デフォルトの名無しさん:2012/06/23(土) 11:55:23.38
>>698天才じゃね?
700デフォルトの名無しさん:2012/06/23(土) 12:26:14.16
成功を掴み取る者は複雑さを避けるよね
701デフォルトの名無しさん:2012/06/23(土) 12:45:28.33
class C;
C* c = malloc(XXX * 3); // 自己管理のメモリを使用したい
c[0] = new C;
c[1] = new C;
c[2] = new C;

XXXは何にすれば良いですか?C.sizeofだと大きすぎるし・・
702デフォルトの名無しさん:2012/06/23(土) 12:54:28.70
今は回避策で↓してます。

C** c = malloc((C*).sizeof * 3);
c[0] = &(new C);
703デフォルトの名無しさん:2012/06/23(土) 13:13:14.57
&(new C)が機能することにびっくりだ。

参照型はポインタなんで(void*).sizeofでいいんじゃないか?
704デフォルトの名無しさん:2012/06/23(土) 13:25:39.95
C.sizeofは4とか8で固定じゃね?大きすぎるってどういうこと?
705デフォルトの名無しさん:2012/06/23(土) 13:41:17.31
new CしたらGC rootに登録されてしまうのでは。
あと配列を独自に管理したいのかCを独自に管理したいのか。
706デフォルトの名無しさん:2012/06/23(土) 13:45:29.02
中身を独自管理するときはstd.conv.emplaceを使うんだったかな
707デフォルトの名無しさん:2012/06/23(土) 13:58:23.21
中身はemplaceで管理してるけど配列はどうやって管理すればいいのか
わからなかったので今はダブルポインタで管理してます
708デフォルトの名無しさん:2012/06/23(土) 14:00:03.63
std.container.Arrayとか?あれGCから切り離されてるよねたしか
709デフォルトの名無しさん:2012/06/23(土) 16:11:01.23
Arrayは自前のメモリプール使えないしいちいちコピー発生するんだよなあ
710デフォルトの名無しさん:2012/06/23(土) 23:17:46.41
ref constで受取った構造体変数はその関数内でメンバ変数を読み取り可っていう仕様は今後も変わらないよね?

struct S{int member;}
void f(ref const(S) s)
{
  writeln(s.member);
}
711669:2012/06/24(日) 02:49:10.70
サンプルコードを更新してみました。
ttps://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
こ、コレジャナイ・・・

>>710 知らないから関係ないことしかかけないけど
これと void f( in S a )
これ void f( ref const(S) a )
ってちゃんと区別されるんだな。知らなかった。
でも逆に言うとわざわざ分けて書くのめんどい。
一度に書けて参照取れる時は取りますみたいな書き方あるのかな?
712デフォルトの名無しさん:2012/06/24(日) 02:55:45.01
挑発くそわろたw
すごいなこれ。もうゲームとか作れそうw
713デフォルトの名無しさん:2012/06/24(日) 14:38:31.40
>>711
ちゃんとポリゴンつながってて良い感じですなぁ〜。
格闘ゲームとかも行けそうな感じ。
714デフォルトの名無しさん:2012/06/24(日) 15:21:13.89
>>711
ああ・・・次はOBB同士の当たり判定だ・・・

inとref constのオーバーロードをちゃんと判断してくれて驚いた
http://ideone.com/cWxBI
715デフォルトの名無しさん:2012/06/24(日) 22:20:51.43
linkerのマングリングされたメッセージを人間が分かるようにする方法ある?
std.demangleあたり?
716デフォルトの名無しさん:2012/06/24(日) 23:29:08.66
「珍説 あご髭がプログラミング言語成功の鍵:髭ギャラリー 」WIRED.jp
http://wired.jp/2012/06/20/beard-gallery/

ウォルター・ブライトに髭なかったよなあ…。
717デフォルトの名無しさん:2012/06/24(日) 23:32:05.87
ハゲてるから大丈夫。
718デフォルトの名無しさん:2012/06/24(日) 23:37:32.28
あほすぎ
719デフォルトの名無しさん:2012/06/24(日) 23:41:58.83
>>716
そのネタもう4年前にやったから
720デフォルトの名無しさん:2012/06/25(月) 00:03:06.05
BEARD.jpに改名したら
721デフォルトの名無しさん:2012/06/25(月) 00:13:15.14
>>715
そう
722デフォルトの名無しさん:2012/06/25(月) 00:20:39.86
日本語の方のstd.demangleのサンプル古いな
コンパイル通らなくなってる
ってかそれ以前に"}"がひとつ少ないような・・・
723デフォルトの名無しさん:2012/06/26(火) 00:20:55.51
WindowsのIDEでオススメはありますか?
724デフォルトの名無しさん:2012/06/26(火) 00:22:13.79
vim
725711:2012/06/26(火) 01:32:07.77
>>714 OBBで当り判定つけてみますた
ttps://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
サンプルがやる気なくてごめんなさい。
726デフォルトの名無しさん:2012/06/26(火) 01:53:41.55
>>725
おー。後は当たり判定に挙動つければミニゲームはできるね。
FCのマリオとかもいけそう。
727デフォルトの名無しさん:2012/06/26(火) 04:07:48.98
struct VS {}

VS.sizeofが1になるような気がするんだけど気のせい?
これ大丈夫?
728デフォルトの名無しさん:2012/06/26(火) 04:54:53.05
配列にしたときに各要素にユニークアドレスを振るためのC言語の仕様
0になる言語もあるけど
729デフォルトの名無しさん:2012/06/26(火) 22:03:11.69
浮動小数点の計算結果がnanになったら行番号吐いて落ちるようにできないかな
既存コードだから全箇所に何か入れるとかはなしの方向で
730デフォルトの名無しさん:2012/06/26(火) 23:45:16.88
alias this+演算子オーバーロードかな
うまくいくかどうかは知らぬ
731711:2012/06/27(水) 04:24:25.61
あ、ありのまま今起こったことを話すと長いので対処法だけ書くぜ。
DerelictSDL2Image.load();
がこける時は
ttps://dl.dropbox.com/u/1630843/hp/d/alt_SDL2.zip
ここに貼った dll と、同封の SDL_image.lib もリンクするんだ!Derelictで動的リンクする場合でもだ!
な、なにを言ってるかわからねーと思うがもう4時だばかやろー
732デフォルトの名無しさん:2012/06/27(水) 08:23:59.54
>>729
C言語からなら feenableexcept(FE_INVALID) ってやれば、ハードウェアで例外が起きるようになるから、
それでなんとかできるんじゃね?
733デフォルトの名無しさん:2012/06/27(水) 10:48:04.79
>>731
うん、知ってた。

そんな俺は、スイッチングGPUでOpenGLが正常にロードされない問題で立ち往生中・・・orz
ノートで開発してて悪かったな!
734731:2012/06/27(水) 23:57:39.54
>>733 知ってたのぉー!?
で、昨日は .lib もリンクしないと動かないと思ってたけどそんなことはなかったぜ!なんでなんだぜ!
ただ DerelictSDL2Image.load() がこけてた理由は分かった。
Derelict3 のところで落とせる SDL2_Image.dll から libpng15-15.dll のシンボルを参照してて、
libpng15-15.dll もロードできる環境じゃないとこけて、さらに IMG_Init( IMG_INIT_PNG ); しか成功しないようになってた。
よくわからんけど上に貼った DLL に差し替えで動くと思いますんで Derelict3 利用される方はどうぞ。

だがこれでようやくメドがついたぜ!あとはシェーダ書いて、しかるべき箇所をテンプレートにして、インターフェイス整えてドキュメント書いたら完成や!
俺、この実装が終わったら >>574 にmergeしてもらうんだ!

>スイッチングGPU
それなんかもうドライバ側の問題なんでは
735デフォルトの名無しさん:2012/06/28(木) 00:26:49.87
>>734
まだだ、まだ終わらんよ
プログラム中でnewしてるところはメモリプールを使用してGCに優しいゲームを作れるようにするんだ・・・

ところでD言語って__func__的なものないのかい
736デフォルトの名無しさん:2012/06/28(木) 03:02:24.15
ない
ちょっと使いにくいけど適当にでっち上げてみた

string funcNameOf(alias s)() @property
{
string prefix; // クラス名
static if (is(typeof(this)))
prefix = "class " ~ typeof(this).stringof ~ "#";
return prefix ~ __traits(parent, s).stringof;
}
void main()
{
int dummy; // なにかローカルのシンボル
writeln(funcNameOf!dummy); // "main()"
}
737デフォルトの名無しさん:2012/06/28(木) 17:22:46.58
Dの配列のsortって何ソート?
738デフォルトの名無しさん:2012/06/28(木) 19:47:40.25
dmdの実装ではCの標準関数のqsort呼び出してる
739デフォルトの名無しさん:2012/06/28(木) 21:08:31.29
>>736
ありがとう
740デフォルトの名無しさん:2012/06/28(木) 21:49:13.20
>>739
__traits(parent, s)って引数のある関数の場合なんで失敗するの?
741デフォルトの名無しさん:2012/06/28(木) 22:52:08.22
アンカミスった
__traits(parent, s)って引数のある関数の場合なんで失敗するの?
742デフォルトの名無しさん:2012/06/29(金) 01:21:05.54
>>741
__traits(parent, s) が関数呼び出しになっとる  (ノ∀`) アチャー

ついでに大幅に改変
import std.stdio;
// mixin
enum string USE_FUNC = "int LOCAL_DUMMY; alias funcNameOf!LOCAL_DUMMY FUNC;";
// 処理本体
string funcNameOf(alias s)() @property {
import std.demangle;
return demangle(__traits(parent, s).mangleof); //stringof をやめた
}
// 使用例
void main() {
mixin(USE_FUNC);
writeln(FUNC);
// クラス
auto c = new C;
c.foo(0);
}
class C {
void foo(int a) {
mixin(USE_FUNC);
writeln(FUNC);
}
}
743デフォルトの名無しさん:2012/06/29(金) 01:49:37.88
パーフェクツ!
744片山博文MZボット ◆0lBZNi.Q7evd :2012/06/30(土) 13:19:19.99
version(Win64) {
private const const_align = 8;
} else {
private const const_align = 1;
}
align(const_align):
...
これ、実現してくれないかな。。。
http://forum.dlang.org/thread/[email protected]
745デフォルトの名無しさん:2012/06/30(土) 14:08:03.43
無理やり
import std.conv;
string SetAlign(int i)(string s) { return text("align(", i, "): ", s); }

version(Win64) {
enum const_align = 8;
} else {
enum const_align = 1;
}

mixin(SetAlign!const_align(q{
struct A {
ubyte[3] ar;
int a;
int b;
}
}));
746片山博文MZボット ◆0lBZNi.Q7evd :2012/06/30(土) 14:20:49.60
>>745 なるほど。ありがと。
747デフォルトの名無しさん:2012/06/30(土) 14:36:35.34
mixinは魔術やでえ
748片山博文MZボット ◆0lBZNi.Q7evd :2012/06/30(土) 20:44:54.29
D1でも動作するコードくれよ
749デフォルトの名無しさん:2012/06/30(土) 21:04:22.89
D1はオワコン
750片山博文MZボット ◆0lBZNi.Q7evd :2012/06/30(土) 21:17:41.77
win2kとwin64をサポートしたD2コンパイラ早く出てこないかな
751デフォルトの名無しさん:2012/06/30(土) 21:59:40.94
みんなボットに反応するとか寂しい真似するなよ・・・
752デフォルトの名無しさん:2012/06/30(土) 22:57:56.39
御意…
753デフォルトの名無しさん:2012/06/30(土) 23:32:59.71
ふーん
754デフォルトの名無しさん:2012/07/01(日) 00:49:54.90
Win64は動くかどうか知らん
// 外枠
version(Win64) {
align(8) mixin RawAligned!();
static assert(S.sizeof == 16);
} else {
align(1) mixin RawAligned!();
static assert(S.sizeof == 2);
}
// 定義の中身
/*mixin*/ template RawAligned() { // D2ならmixinをコメント解除
struct S {
char c1, c2;
}
}
// 使用
void main() {
S s;
}
755デフォルトの名無しさん:2012/07/01(日) 01:00:33.98
static assertは消すか書き換えるかしてくり
756片山博文MZボット ◆0lBZNi.Q7evd :2012/07/01(日) 23:07:17.55
>>754-755
出来た。special thanks!
757デフォルトの名無しさん:2012/07/01(日) 23:12:26.57
thanks a lot
758デフォルトの名無しさん:2012/07/02(月) 00:11:32.52
どうでもいいがスレはあげんといてや
759デフォルトの名無しさん:2012/07/05(木) 10:14:00.47
>>667
トップページがすごく…わかりにくいです
ユーザー登録無しでも使えるはず
760デフォルトの名無しさん:2012/07/05(木) 10:24:20.40
ありゃ、しばらく見ない間に、
writeln({}) の出力が void delegate() じゃなくなってら
文字数少なくて好きだったのに
761デフォルトの名無しさん:2012/07/05(木) 10:38:46.07
functionになったからアドレス表示するようになったのか
この機能いろいろ変わるんだな
762デフォルトの名無しさん:2012/07/05(木) 11:22:28.09
2.058からだっけか、局所変数を参照するかしないかで
delegateかfunctionかが推論されるようになった
763デフォルトの名無しさん:2012/07/05(木) 11:30:08.48
>>761-762
なるほどー

どんどん賢くなって寂しい・・。
764デフォルトの名無しさん:2012/07/05(木) 19:42:10.38
寂しがることはない
これを見て元気を出すんだ

http://d.puremagic.com/issues/show_bug.cgi?id=8340
765デフォルトの名無しさん:2012/07/05(木) 20:46:54.90
ヒィッ
766デフォルトの名無しさん:2012/07/05(木) 21:00:21.88
>>764
うっかりお隣も一緒に書き換えちゃった(・ω<)

安心した
767デフォルトの名無しさん:2012/07/06(金) 23:08:46.23
*.diファイルの中身まで-propertyでチェックかけなくったっていいじゃないか!ファック!
768デフォルトの名無しさん:2012/07/07(土) 00:52:07.41
これがビルドできないのはバグであると高らかに主張したい

class Foo {
typeof(this) clone() const {
return new typeof(this)();
}
}
769デフォルトの名無しさん:2012/07/07(土) 00:58:48.77
- return new typeof(this)();
+ return new typeof(return)();
770デフォルトの名無しさん:2012/07/07(土) 22:35:41.88
>>768

clone関数の外では、typeof(this)は常にconstとか付かない、Fooを返す
clone関数の中では、typeof(this)はconstを考慮した、const(Foo)を返す
→const(Foo)からFooへの変換は出来ないのでコンパイル失敗する

何もおかしなことは無い
771デフォルトの名無しさん:2012/07/07(土) 23:38:14.19
>clone関数の中では、typeof(this)はconstを考慮した、const(Foo)を返す
ここんところがどうも納得いかない
どうしてそういう仕様なんだろ?
772デフォルトの名無しさん:2012/07/07(土) 23:50:40.55
何のためにconstメソッド使ってんだよ・・・
773デフォルトの名無しさん:2012/07/08(日) 01:26:22.93
>>771
どっちが納得できない?
1. clone関数の戻り型typeof(this)がconst(foo)ではなくFooになること
2. clone関数の中でのtyoeof(this)がFooではなくconst(Foo)になること

前者ならまだ判らなくもないけど
774デフォルトの名無しさん:2012/07/08(日) 02:05:23.03
>>773
2.
typeof(this)はクラスの中なら普通にクラスの型を表すものじゃないの、と

というかインスタンスが存在しない場面でも使える
typeof(this)自体が納得いかないと気づいてしまったのでもういいや
775デフォルトの名無しさん:2012/07/08(日) 04:14:12.67
雛形にインスタンスなんてあらへん
776デフォルトの名無しさん:2012/07/09(月) 20:30:45.89
ttps://github.com/D-Programming-Language/druntime/commit/d39bd49ad20d34347be24b5c4e3165b6a5c5a752

きたか…!!

  ( ゚д゚ ) ガタッ
  .r   ヾ
__|_| / ̄ ̄ ̄/_
  \/    /
777デフォルトの名無しさん:2012/07/09(月) 20:41:39.41
リリース直前の駆け込みで入れていい内容じゃないだろ…
778デフォルトの名無しさん:2012/07/09(月) 21:24:04.03
オラなんだかワクワクしてきたぞ
779デフォルトの名無しさん:2012/07/09(月) 21:34:08.09
キタワァ
780デフォルトの名無しさん:2012/07/10(火) 00:10:16.04
構造体のopOpAssignどーやるの?
781デフォルトの名無しさん:2012/07/10(火) 00:14:05.07
ごめんあげちった
782デフォルトの名無しさん:2012/07/10(火) 01:08:47.68
opOpAssignがassignされたりされなかったりする文脈依存のバグ?やめて欲しい・・・
783デフォルトの名無しさん:2012/07/10(火) 01:19:20.38
>>780-782
バグかどうか調べて欲しいならサンプルコードPlease。
784デフォルトの名無しさん:2012/07/10(火) 23:05:23.05
typoじゃね
785デフォルトの名無しさん:2012/07/10(火) 23:27:12.57
発生の最小コードがぜんぜんわからないからちゃんと動くのだけ
opOpAssignって公式見ても定義書いてないけどこれであってる?
http://ideone.com/cnjhK
786デフォルトの名無しさん:2012/07/11(水) 00:06:59.13
そういうときはとりあえず phobosをのぞく
787デフォルトの名無しさん:2012/07/11(水) 00:09:39.51
ん?ちゃんと動かないのだけじゃなくて?
788デフォルトの名無しさん:2012/07/11(水) 00:25:07.11
>>785の例だと2.059ではちゃんと動いてa.n_は11になるんだけど
それなりにでかいソースの中でうまく動いてない箇所で確認した動作は
opOpAssignの中でthisが別の領域指してる感じ
opOpAssignの外で+=の左辺のアドレスをみてみたらthisと一致してなかった
789デフォルトの名無しさん:2012/07/11(水) 01:14:19.86
+=の左辺の変数名を変えたら意図したとおり動作しました
↓こんな構成なんだけどスコープがかぶってない同名の変数があっても良いよね?
変数名を変えただけで動作変わるって事はスコープがらみの不具合?
void f(){
__for(){
____A a;
____a+=1*v;
__}
__for(){
____A a;
____a+=1*v;
__}
}
790デフォルトの名無しさん:2012/07/11(水) 01:39:09.33
VisualDの変数内容表示がおかしかっただけだった・・・
スレ汚しすまぬ
791デフォルトの名無しさん:2012/07/11(水) 02:20:16.92
ローカル変数名ダブリはデバッガが対応できない
windowsのみかわからんけど bugzillaにもあがってる
http://d.puremagic.com/issues/show_bug.cgi?id=3657
792デフォルトの名無しさん:2012/07/11(水) 12:36:39.51
エラーをその都度修正して使っていると言われたら諦めるが、
現在wxd wxWidgets DMDのビルドが成功する組み合わせって最新のはどうなってるんだ

検索で見つかった一番新しい組み合わせが wxW2.8.9 wxd1.4 dmd1040/2025
http://d.hatena.ne.jp/ottu/20090303/1236054462
だったのでそれよりも新しいものでビルドに成功した経験があったら教えて欲しい
793デフォルトの名無しさん:2012/07/11(水) 13:22:03.78
エラーをその都度修正して使っている
794デフォルトの名無しさん:2012/07/11(水) 17:10:15.82
試してみる気はまったくないがこっちの方が新しそうではある
https://github.com/afb/wxd
795デフォルトの名無しさん:2012/07/11(水) 17:57:28.28
>>793
ですよねー

>>794
もう試したくはないが、
wxd0.16 wxWidgets2.8.12 or 2.8.9 or 2.9.3 DMD1074/2059
は一発では通らなかった上、それより古いものを含めた組み合わせの大半が
どのバージョンのDMDに合わせて作ってあるのか(どう修正すればいいのか)が判らない

随一修正するの疲れたから、一発で通る上記の組み合わせに逃げたのが今の惨状
796デフォルトの名無しさん:2012/07/11(水) 18:13:57.75
正解
っていうか D はオワコン
797デフォルトの名無しさん:2012/07/11(水) 18:16:48.75
>>796
README に一言
どのバージョンの dmd と wxWidgets でコンパイルしたかだけでも書いてあるだけでも良いと思うの
798デフォルトの名無しさん:2012/07/11(水) 18:40:38.34
暇な人柱に実験させるのは止めた方が良い
799デフォルトの名無しさん:2012/07/11(水) 18:53:25.16
どのみち 2.060 でクラスベースのライブラリは全滅するんだけどな
800デフォルトの名無しさん:2012/07/11(水) 19:31:09.19
え?
801デフォルトの名無しさん:2012/07/11(水) 19:41:23.64
githubに移行して更新もされてるから使えるかなと思ったら使えなかったんだよな、wxD
頑張って使ってる人いたんだな…
802デフォルトの名無しさん:2012/07/13(金) 21:23:49.66
=>が実装されてunaryFunとbinaryFun涙目だけどこのテンプレート消える予定あるん?
803片山博文MZボット ◆0lBZNi.Q7evd :2012/07/14(土) 12:30:41.34
日本語版のCHMがダウンロードできない。。。
804デフォルトの名無しさん:2012/07/14(土) 13:29:09.67
あげんな
805デフォルトの名無しさん:2012/07/14(土) 13:50:10.07
CHMとか何処の田舎なの
806デフォルトの名無しさん:2012/07/14(土) 13:51:21.91
HLPファイルのほうがいい
807デフォルトの名無しさん:2012/07/14(土) 15:02:15.73
//std.parallelismがなんかおかしい。
import std.stdio,std.datetime,std.range,std.algorithm,std.parallelism,std.array;

void main(){
long sum=0;
foreach(i;0..10000)sum+=i;
writeln("sum:",sum);//49995000

auto a=iota(0,10000).array();
long psum=0;
psum=taskPool.reduce!"a + b"(a);

writeln("psum:",psum);//49995000


long sum2=0;
foreach(i;0..100000000)sum2+=i;
writeln("sum2:",sum2);//4999999950000000

auto a2=iota(0,100000000).array();
long psum2=0;
psum2=taskPool.reduce!"a + b"(a2);

writeln("psum2:",psum2);//887459712<-?
}
808デフォルトの名無しさん:2012/07/15(日) 02:49:41.72
>>807
たぶんtaskPool.reduceの結果がintで計算されているのでオーバーフローしている
iotaとtaskPool.reduceの両方がバグをもってるっぽい。

さあ、バグレポ投稿の時間だ。バグレポしないと誰も直してくれないよ?
809デフォルトの名無しさん:2012/07/15(日) 11:42:56.03
reduceの戻り値の型がtypeof(a2[0])だからだね
でも直すのめんどくね?

これとかもろintだし
writeln(typeid(taskPool.reduce!"a + b"(a2)));

一応汚い回避策もなくもない
auto a2=iota(0,100000000).map!"a * 1L".array();
810デフォルトの名無しさん:2012/07/15(日) 12:05:23.51
CommonType使ってあげてください・・
811デフォルトの名無しさん:2012/07/15(日) 12:08:52.75
普通にreduceにlong型の初期値与えればいいんじゃないの?あんまり知らないけど
812デフォルトの名無しさん:2012/07/15(日) 19:22:34.76
せやな
psum2=taskPool.reduce!"a + b"(0L, a2);
813807:2012/07/15(日) 19:40:33.91
>>808-812
みんなありがとう.。
>>812でちゃんと計算できた。
自動でオーバーフローを判断してくれないのはまあそんなもんかなと思うので今度から型には気をつけることにする。

814デフォルトの名無しさん:2012/07/15(日) 20:39:21.21
Haskellとかscalaとかで最近よく聞く圏論的にも入力と出力は同じ型なのが正しいっていう理解でいいのかな
815デフォルトの名無しさん:2012/07/15(日) 20:44:36.76
ゼロ除算で例外出るみたいにオーバーフローで例外出るようにしてもらおうぜ!
816デフォルトの名無しさん:2012/07/15(日) 22:20:34.72
やめろ
817デフォルトの名無しさん:2012/07/15(日) 22:38:12.51
D言語には何か超えるべき大きな壁があるんだと思う
そこを超えられればとても優良な言語になれてるはずなんだ
818デフォルトの名無しさん:2012/07/15(日) 22:53:39.80
ゼロ除算で例外が出ると今、申したな?
http://d.puremagic.com/issues/show_bug.cgi?id=5908
819デフォルトの名無しさん:2012/07/16(月) 08:09:19.33
feenableexcept(3)をラップしたインタフェースがあればいいんだよ
820デフォルトの名無しさん:2012/07/16(月) 14:42:27.57
VisualD以外で、まともにデバッガと連携取れるIDEってありますか?
DDTはデバッガをサポートしてないみたいだし、D-IDEはステップイン中に時々例外吐いて落ちてしまいます。
821デフォルトの名無しさん:2012/07/16(月) 18:05:25.11
Win のデバッガについて知り尽くした俺に言わせてもらえば

  な い
822デフォルトの名無しさん:2012/07/16(月) 19:31:25.87
どこでInvalidMemoryOperationErrorが出てるかわかる方法ない?
823デフォルトの名無しさん:2012/07/16(月) 20:03:47.28
824デフォルトの名無しさん:2012/07/16(月) 20:15:14.05
IDEはVisualDがアタマ三つくらい抜けてる印象
825デフォルトの名無しさん:2012/07/16(月) 20:17:30.52
druntime をデバッグビルドしてデバッガでブレーク

ちなみに前に見たことがあるのは
DFLのタイマーオブジェクトの開放漏れ
826デフォルトの名無しさん:2012/07/16(月) 20:25:50.18
カバレッジって1ファイルじゃないと出来ない?
50ファイルくらいのソースから作ってるexeなんだけど実行してもカバレッジ結果のlstファイルができない・・
827デフォルトの名無しさん:2012/07/16(月) 20:38:08.77
どうやって make してるか知らんけどちゃんとできる
だがどうやってカバレッジでエラーの場所を突き止めるかはわかんね
828デフォルトの名無しさん:2012/07/16(月) 23:36:53.22
ああ、なるほど-releaseオプションつけちゃだめだよねそりゃ
829デフォルトの名無しさん:2012/07/17(火) 01:25:41.94
ddocって軽視されてるの?
拾ってきたソースコードをとりあえず-Dでhtml出してみても全く読ませる気が感じられないんだけど
830デフォルトの名無しさん:2012/07/17(火) 02:38:56.27
コンパイル時評価で良さ半減!BulletMLパーサ!
ttps://dl.dropbox.com/u/1630843/hp/d/bulletml.zip

>>829
doxygen使っててテンプレートまわりがひどかったからddocに変えてみたんだけど、
やっぱりテンプレートおかしいorz
831デフォルトの名無しさん:2012/07/17(火) 04:24:36.70
>>830
そういえばmqoローダー使わせてもらおうと思ってちょっといじってたら、テクスチャファイルを一緒に使おうとすると落ちるから直してみたよ!
loadMQOCellの文字列マッチの部分を最小マッチにすれば直るかも(Material名のパースの時、構文乗り越えてテスクチャ文字列用のダブルクォートまで読み込んじゃう)。
既に直してたらスルーしてください!
832デフォルトの名無しさん:2012/07/17(火) 23:12:05.14
>>831 ありがとうございます!直してみます!何しろDさんでしかテストしてないもんで<(;^o^)
833片山博文MZボット ◆0lBZNi.Q7evd :2012/07/18(水) 03:05:35.29
列挙体のメンバーの指定が長たらしくなる。with構文があれば良いのに。
834デフォルトの名無しさん:2012/07/18(水) 03:31:49.56
>>833
あるよ?
835デフォルトの名無しさん:2012/07/18(水) 06:23:59.30
>>834
D言語だって俺たちと共にあるよ?
836デフォルトの名無しさん:2012/07/18(水) 19:58:40.96
May the D be with you!

↓グーグル先生訳

Dは、あなたと一緒かもしれません!

ワロタ
837デフォルトの名無しさん:2012/07/18(水) 20:01:26.48
何もおかしくない
838デフォルトの名無しさん:2012/07/19(木) 07:36:30.65
Dがあなたの伴達共でありますように。
839デフォルトの名無しさん:2012/07/19(木) 21:32:52.31
D言語と秋の空か
840デフォルトの名無しさん:2012/07/20(金) 00:53:55.41
D言語 負けても知らぬ 厚顔よ
             エロ林・エッチャー
841デフォルトの名無しさん:2012/07/20(金) 13:41:13.07
D言語 ナウい腰つき D・V・D
               エロ川
842デフォルトの名無しさん:2012/07/20(金) 13:45:48.05
D言語 壊れて対応 脳汁が!!
                                  -M戦士
843デフォルトの名無しさん:2012/07/20(金) 13:56:52.13
お前らの開発環境教えて
844デフォルトの名無しさん:2012/07/20(金) 14:11:46.24
メモ帳
845デフォルトの名無しさん:2012/07/20(金) 14:20:40.53
Terapad+DMD+.bat
846デフォルトの名無しさん:2012/07/20(金) 14:25:28.58
サクラエディタ + dmd + mingw32-make
エディタはGinnieに変えようか迷ってる。
気が向いた時はVisual Dを使ったりもする。
847デフォルトの名無しさん:2012/07/20(金) 15:36:04.04
やっぱみんなエディタなんだな
848デフォルトの名無しさん:2012/07/20(金) 16:49:38.44
scintilla+dmd+ddbg+IDEもどき
849デフォルトの名無しさん:2012/07/20(金) 17:25:30.20
notepad++でなんとかなる
850デフォルトの名無しさん:2012/07/20(金) 19:27:11.16
標準環境だけでビルドしたいからDigitalMarsのmake使ってたんだけど機能が腐りすぎている
ある日気づいた。ビルドスクリプト書いてrdmdでいいじゃん、と
コード書くのはサクラエディタだなぁ、例に漏れず
851デフォルトの名無しさん:2012/07/20(金) 22:01:40.69
びむびむ
852デフォルトの名無しさん:2012/07/20(金) 22:21:16.04
import std.stdio;

class C {
void foo() { writeln("not const"); }
const void bar(void delegate() dlg) { dlg(); }
const void hoge() { bar(&foo); }
}

void main() {
auto c = cast(const) new C;
c.hoge(); // 非constメソッドのfooを呼び出す
}

うーん、こんなclass作るなよってことなんだろうけど…
853デフォルトの名無しさん:2012/07/20(金) 22:26:49.03
その動作なにか不満あるの?
854デフォルトの名無しさん:2012/07/20(金) 22:30:44.68
import std.io;じゃ駄目なんですか
855デフォルトの名無しさん:2012/07/20(金) 22:41:38.87
そもそもconstじゃないメソッドのdelegateをconstなインスタンスから取れるというのがおかしくね?

import std.stdio;

class Int {
int value = 0;
void set(int i) { value = i; }
}

void main() {
auto c = cast(immutable) new Int;
// c.set(42); // 当然エラー
(&c.set)(42); // エラーにならない!
writeln(c.value); // "42"を出力
}

やりたい放題じゃね?
856デフォルトの名無しさん:2012/07/21(土) 01:02:29.48
ヤリ vs 砲台
857デフォルトの名無しさん:2012/07/21(土) 01:18:41.61
>>856
一方的ですなー。意外とずれてないかも。
858デフォルトの名無しさん:2012/07/21(土) 03:22:15.22
投げやり

ヤリが勝つわ!
859デフォルトの名無しさん:2012/07/21(土) 12:44:04.53
860デフォルトの名無しさん:2012/07/21(土) 15:36:29.49
2008年か…古生代だな
861デフォルトの名無しさん:2012/07/21(土) 15:39:27.55
delegateをfunctionに変換したいんだけどなんでこれseg faultになるの?
http://ideone.com/XNdpk
862デフォルトの名無しさん:2012/07/21(土) 16:19:09.27
test.d(18): Error: cannot implicitly convert expression (__lambda1) of type void delegate() @system to void function()
ちゃんとエラーになるが
863デフォルトの名無しさん:2012/07/21(土) 17:21:34.08
コンパイルエラーになんなくね?dmd2.059@win
864862:2012/07/21(土) 17:27:46.59
2.058だった・・・
更新来たときはさっさと更新しなきゃってなんで後退しとんねん!
865デフォルトの名無しさん:2012/07/21(土) 17:31:04.19
笑ったw
866デフォルトの名無しさん:2012/07/21(土) 19:19:38.71
コンパイルエラーにならずに実行時エラーになるな @win

functionに変換する方法もわからんけど
867デフォルトの名無しさん:2012/07/21(土) 20:14:43.99
サンクとかグローバル変数でも使わない限りはdelegate -> functionは無理じゃないかな
868デフォルトの名無しさん:2012/07/21(土) 20:21:24.66
あ、this使ったらdelegateになっちゃうんか・・・
869デフォルトの名無しさん:2012/07/21(土) 20:22:38.58
870デフォルトの名無しさん:2012/07/21(土) 20:40:16.64
改造してみたよ><http://ideone.com/jlDE6
871デフォルトの名無しさん:2012/07/21(土) 21:16:02.48
>>870
なるほど。
テンプレートって、インスタンス化のたびに新しいグローバル領域が確保されるのね。
872デフォルトの名無しさん:2012/07/21(土) 21:25:57.01
パラメタが同じだったら同じ領域が使われるけど、ID1とID2でちょっとだけ防いでる
873デフォルトの名無しさん:2012/07/21(土) 21:28:57.79
>>872
その発想はなかったw
ある意味テンプレートの無駄な部分に助けられてるわけかw
874デフォルトの名無しさん:2012/07/21(土) 21:32:44.79
>>861-864
それ2.059のregression。
http://d.puremagic.com/issues/show_bug.cgi?id=8397
昨日パッチ出したので2.060を待つがよろし
875デフォルトの名無しさん:2012/07/21(土) 21:38:11.73
>>870
何これすごい
D言語のポテンシャルは失禁モノだぜ・・・
876デフォルトの名無しさん:2012/07/21(土) 21:41:24.84
>>874
ありがとん
877デフォルトの名無しさん:2012/07/22(日) 18:14:28.56
http://dlang.org/phobos/std_utf.html
> さいごの果実 / ミツバチと科学者
なぜマーヤww
878デフォルトの名無しさん:2012/07/22(日) 18:34:46.39
日本人コミッタの仕業かと思いきやジョナさんらしい
879デフォルトの名無しさん:2012/07/22(日) 20:42:42.87
コマッタ奴だな
880デフォルトの名無しさん:2012/07/22(日) 22:51:42.15
普通に買って持ってるCDの曲の名前がここにあるとは思わんかったw
881デフォルトの名無しさん:2012/07/23(月) 21:02:23.63
http://dpaste.dzfl.pl/0e9fc1cc
(゚Д゚)ハァ?

std.algorithm導入から今日に到るまでstd.algorithm.rangeがまともに使えた試しがない…
なんか使い方とかあるの?
882デフォルトの名無しさん:2012/07/23(月) 21:03:02.52
rangeじゃないremoveだ
最初と最後しか合ってないとかケブンリッジか
883デフォルトの名無しさん:2012/07/23(月) 21:27:39.32
釣られるもんかっ
884デフォルトの名無しさん:2012/07/23(月) 21:35:42.84
removeってoffsetを渡すか述語で検知するかじゃないの?
それやりたいならcountUntil使うんじゃね
885デフォルトの名無しさん:2012/07/23(月) 21:44:22.18
a.remove!(e=>e=="a")();

もしかして:ドキュメントに書かれてない
886デフォルトの名無しさん:2012/07/23(月) 22:05:01.85
ttp://dpaste.dzfl.pl/630390cb

おーできた。ありがと

ttp://dpaste.dzfl.pl/c2e6bc6f
(゚Д゚)
887デフォルトの名無しさん:2012/07/23(月) 22:20:22.36
std.file か何かに ファイル削除の remove() があって
衝突するのを思い出した
888デフォルトの名無しさん:2012/07/23(月) 22:40:58.11
joinとかはよくなったけどまだまだあるねぇ
889片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 13:00:45.71
コンパイルエラー。助けて!!
https://www.dropbox.com/sh/yeu7fx8tgebf25x/CJupc40pKq/wonders.zip
890片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 13:36:58.44
コンパイルにはGNU makeが必要。
891片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 14:23:21.56
..\wonders\prsht.d(850): Error: undefined identifier LPPROPSHEETPAGEA, did you m
ean alias LPPROPSHEETPAGE?
..\wonders\prsht.d(851): Error: undefined identifier LPPROPSHEETPAGEW, did you m
ean alias LPPROPSHEETPAGE?
..\wonders\sqlext.d(361): Error: undefined identifier SQL_TYPE_DATE, did you mea
n variable SQL_C_TYPE_DATE?
..\wonders\sqlext.d(362): Error: undefined identifier SQL_TYPE_TIME, did you mea
n variable SQL_C_TYPE_TIME?
..\wonders\sqlext.d(363): Error: undefined identifier SQL_TYPE_TIMESTAMP, did yo
u mean variable SQL_C_TYPE_TIMESTAMP?
892デフォルトの名無しさん:2012/07/24(火) 14:25:49.82
ただのundefined identifierじゃん?
GREPかけたけど定義部ないじゃん
893デフォルトの名無しさん:2012/07/24(火) 14:29:04.52
>>891
そこまでヒント出ててわからないとこの先苦労するぞ。
894片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 14:34:32.33
>>892 LPPROPSHEETPAGEAとLPPROPSHEETPAGEWは、prsht.d(267〜295)で
定義されているはず。
895片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 14:39:49.84
定義されているはずなのに、未定義。何かがおかしいんだ。。。
896デフォルトの名無しさん:2012/07/24(火) 14:54:49.64
static if内の前方参照は不可ってことかな
ifの中で式使うし当然といえばそうか?バグっぽいけど
897片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 15:22:39.49
具体的にどういう風に直せばいい?
898デフォルトの名無しさん:2012/07/24(火) 15:47:08.53
それ2.059でコンパイルしてない?
2.059のimport周りでおかしくなって2.058に戻した記憶がある
バグか仕様変更かは知らん
899片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 19:54:45.92
>>898 それは関係ないと思う
900デフォルトの名無しさん:2012/07/24(火) 20:41:38.18
struct PROPSHEETPAGEA_V1 {
LPFNPSPCALLBACKA pfnCallback;
}
alias LPPROPSHEETPAGEA_V1 LPPROPSHEETPAGEA;
alias UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA;

いやな作りだな
並び順を変えてみて、それでもダメなら・・・う〜んどうする?
901デフォルトの名無しさん:2012/07/24(火) 20:44:27.24
目が痛い
902デフォルトの名無しさん:2012/07/24(火) 20:58:44.25
おっと、すまん…
1行足りなかったわw

struct PROPSHEETPAGEA_V1 {
LPFNPSPCALLBACKA pfnCallback;
}
alias PROPSHEETPAGEA_V1* LPPROPSHEETPAGEA_V1;
alias LPPROPSHEETPAGEA_V1 LPPROPSHEETPAGEA;
alias UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA;
903デフォルトの名無しさん:2012/07/24(火) 21:08:32.23
おまえらbotには優しくしなくていいぞ
904片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 21:17:30.42
>>900 有り難う救世主。引数の型をvoid*にすることにした。
sqlextのエラーの原因がわからん。
905デフォルトの名無しさん:2012/07/24(火) 21:42:21.61
>>903
いつも突っかかってるけど、何が気に入らないん?
906デフォルトの名無しさん:2012/07/24(火) 23:09:40.86
自作のコードからテンプレート極力排除したらアホみたいにコンパイル速くなった
今は無性にgenericsが欲しい
907デフォルトの名無しさん:2012/07/24(火) 23:15:36.58
>>906
実行時例外出まくるとかやったらややね。
908デフォルトの名無しさん:2012/07/24(火) 23:52:13.28
>>905
1.こうやってほぼ丸投げで協力させて形になったら有料でソースを公開するということを数ヶ月前にやっていること
2.「ボット」がネガティブ発言に対してボットに反応するなと言うための保険だということ
909デフォルトの名無しさん:2012/07/25(水) 00:14:50.18
2つとも名無しでもみんなやってそうだけど、思ったよりそうでもないのかな?
910デフォルトの名無しさん:2012/07/25(水) 00:16:20.47
同定可能な状態でふざけた事をすりゃそりゃ嫌がられて当たり前
911デフォルトの名無しさん:2012/07/25(水) 01:00:37.92
>>908
なるほど、嫌いになる人はなりそうだな。
912片山博文MZボット ◆0lBZNi.Q7evd :2012/07/25(水) 12:43:38.42
>>908 丸投げじゃありません。90%以上のコードは自分で書きました。
MZCは有料化の話もありましたが、現在も実質無料です。
ボットは、機械のように早いという意味で、ある人から授かった私の称号です。
913片山博文MZボット ◆0lBZNi.Q7evd :2012/07/25(水) 13:06:37.05
プロパティシート関連を修正・自己解決。
https://dl.dropbox.com/sh/yeu7fx8tgebf25x/CJupc40pKq/wonders.zip?dl=1

次のエラーを解決してくれたら、WebMoney900円あげますよ!!!
sqlext.d(361): Error: undefined identifier SQL_TYPE_DATE, did you mean variable
SQL_C_TYPE_DATE?
sqlext.d(362): Error: undefined identifier SQL_TYPE_TIME, did you mean variable
SQL_C_TYPE_TIME?
sqlext.d(363): Error: undefined identifier SQL_TYPE_TIMESTAMP, did you mean vari
able SQL_C_TYPE_TIMESTAMP?
914片山博文MZボット ◆0lBZNi.Q7evd :2012/07/25(水) 13:55:59.34
仲良くしようぜ
  ∩__∩  ∩__∩
 (’ x ’) (’ x ’)
⊂| ~ |⊃⊂| ~ |⊃
  ∪~∪   ∪~∪
915デフォルトの名無しさん:2012/07/25(水) 14:34:48.70
R4i gold 3ds マジコン R4i gold 3ds 通販 R4i gold 3ds 販売
http://www.r4-tt.com/
● 全世界で初めて3DSホストコンピュータをサポートする。
● 全世界で初めてDSiホストコンピュータシステムをV1.41に昇進することをサポートする。
● 全言語システムのDSiホストコンピュータをサポートし、ヨーロッパ産のは自由に選択することができる。
● DSL/DSi/LL/XLすべてのホストコンピュータシステムをサポートする。
● 標準的なTFカードと最新SDHC規格のTFカードをサポートし、最大容量は32GB(256Gb)。
● スマーターキー機能搭載
916片山博文MZボット ◆0lBZNi.Q7evd :2012/07/26(木) 14:11:12.30
おーい、誰もいないのかぁ???
917片山博文MZボット ◆0lBZNi.Q7evd :2012/07/26(木) 14:49:50.46
たすけてけろーーー
918デフォルトの名無しさん:2012/07/26(木) 14:51:27.58
Makefileがおかしいに一票。
919デフォルトの名無しさん:2012/07/26(木) 15:38:38.03
botの頭がおかしいに3票
920デフォルトの名無しさん:2012/07/26(木) 15:50:29.06
これ見てるとDelphi Prismの機能が欲しくなってくるわ
http://wiki.oxygenelanguage.com/en/CSharp_vs._Oxygene
日本語訳 http://delwiki.info/?DelphiPrism%2FDelphi%20Prism%20vs.%20CSharp
921デフォルトの名無しさん:2012/07/28(土) 01:43:09.20
質問です。

immutable(char)[] s = "first";
s = "second";
これは、s自体はimmutableじゃないのでコンパイル通りますよね。
イメージとしてはこれと同じ感じで、
immutable(Test) a = new Test();
a = new Test();
みたいなことがやりたいんですが、どうにかしてできるでしょうか
つまり、immutableなオブジェクトへのmutableな参照が欲しいということです
922デフォルトの名無しさん:2012/07/28(土) 01:45:39.66
Rebindableってのがある
923デフォルトの名無しさん:2012/07/28(土) 02:57:16.56
>>922
ありがとうございます、ちょうどこんなのです。
924デフォルトの名無しさん:2012/07/28(土) 10:35:23.82
いまさらだけど>>375-385あたりの構造体のthis(this)が呼ばれない話題ってNRVOだったのかも
925デフォルトの名無しさん:2012/07/28(土) 15:50:10.39
static assert(is(void function() == function));
が false になるんですが、自分がなにか勘違いしているんでしょうか…
926デフォルトの名無しさん:2012/07/28(土) 15:57:43.21
void function() == void function()
とか?
俺こう言うの全然分からない
927デフォルトの名無しさん:2012/07/28(土) 16:00:39.27
function てポインタじゃね
928デフォルトの名無しさん:2012/07/28(土) 16:10:16.08
static assert(is(void delegate() == delegate)); は trueになるんだけど…

あと、static assert(is(typeof((){return 0;}) == delegate)); ってやったら、
Error: static assert (is(int function() pure nothrow @safe == delegate)) is false
ってなるんだけど、無名関数ってデフォルトでdelegateじゃないの?
ちなみに static assert(is(typeof((){return 0;}) == function)); もエラーになる(>>925に書いた通り)
929uy ◆pyyuXJJZ8Q :2012/07/28(土) 16:30:59.35
930デフォルトの名無しさん:2012/07/28(土) 17:35:56.28
is(x == function)の動きが謎すぎるww
ちょっと試したけどむしろどうすればtrueになるのかすらわからんww
931デフォルトの名無しさん:2012/07/28(土) 17:42:25.51
void func() {}
void function() fpvar = &func;
static assert(is(func == function)); //だめ
static assert(is(fpvar == function)); //だめ
static assert(is(typeof(fpvar) == function)); //だめ
static assert(is(typeof(func) == function)); //OK
狭ッッ
932片山博文MZボット ◆0lBZNi.Q7evd :2012/07/28(土) 18:22:40.54
普通のmakeでもビルドできるようにした。
https://dl.dropbox.com/sh/yeu7fx8tgebf25x/CJupc40pKq/wonders.zip?dl=1

次のエラーを解決してくれたら、WebMoney900円あげますよ!!!
wonders\mswsock.d(23): Error: undefined identifier AF_MAX, did you mean variable
CF_MAX?
933デフォルトの名無しさん:2012/07/28(土) 18:31:27.91
AF_MAXなんて定義されてねぇよ
CF_MAXの間違いと違うか?
934デフォルトの名無しさん:2012/07/28(土) 18:36:42.91
935デフォルトの名無しさん:2012/07/28(土) 18:45:59.03
アナルファックの感度を最大にせず
乳首ファックの感度を最大にしようず
936uy ◆pyyuXJJZ8Q :2012/07/28(土) 19:09:50.25
ニブルファック
937デフォルトの名無しさん:2012/07/28(土) 19:17:29.86
ニッポォ〜。
938片山博文MZボット ◆0lBZNi.Q7evd :2012/07/28(土) 21:58:38.99
やっぱりコンパイラのバグかなぁ?
939デフォルトの名無しさん:2012/07/28(土) 23:28:29.77
2.060まだかなー
940デフォルトの名無しさん:2012/07/28(土) 23:38:45.26
頭のバグや
941デフォルトの名無しさん:2012/07/29(日) 02:47:57.43
>>925
void function() は関数ポインタ型。is(...==function)は関数型のときのみtrueになる

931の例を使うと

void func() {}
void function() fpvar = &func;

static assert(is(func == function)); //だめ
→funcは関数そのもの(=シンボル)なのでそもそも型ではない

static assert(is(fpvar == function)); //だめ
→fpvarは変数なのでそもそも型ではない

static assert(is(typeof(fpvar) == function)); //だめ
→typeof(fpbar)は関数ポインタ型で、関数型ではない

static assert(is(typeof(func) == function)); //OK
→関数funcの型をtypeofで取り出している=関数型なのでOK
942デフォルトの名無しさん:2012/07/29(日) 03:01:02.59
たぶん混乱しているのは
void function() fp;
こう書いたときfpの型は「関数ポインタ型」になるが、is式内では==functionが
「関数型かどうか」の判定になる点だと思う。

関数funcがあるとき
typeof(func)で取れるのが関数型、is(...==function)で真になる

&funcという式から取れるのが
1.関数ポインタ
auto fp = &func;
static if (is(typeof(fp) FP : F*, F)) {
// typeof(fp)を名前FPに割り当て、そこからFを切り出す
static assert(is(F == function)); // Fは関数型
pragma(msg, F); // "void()"と表示される
}

2.デリゲート
auto dg = &obj.func;
static if (is(typeof(dg) DG == delegate)) {
// ==delegateはデリゲート型かどうかを判定する
// デリゲート型DGから関数型を取るにはstd.traits.FunctionTypeOfを使う
}
943デフォルトの名無しさん:2012/07/29(日) 03:03:01.46
944デフォルトの名無しさん:2012/07/29(日) 03:12:32.89
「関数型」ってis( == function)以外の場所で全く使わないよな・・
945デフォルトの名無しさん:2012/07/29(日) 05:35:55.15
946デフォルトの名無しさん:2012/07/29(日) 09:03:37.54
>>943
ありがとう。実はいつBetaが取れるのかなーという気持ちでした
手許のライブラリがちょっとの修正で動いたから例の外された崩壊的変更以外はおとなしめな気分
947デフォルトの名無しさん:2012/07/29(日) 10:13:50.58
WinXP のスタックトレースが改善されるから
個人的にはとっとと出してほしい

Win64ビットは年内にできるかな〜?
948デフォルトの名無しさん:2012/07/29(日) 10:25:56.83
D3が来るとしたらD1のサポートが終わった来年以降かー
949デフォルトの名無しさん:2012/07/29(日) 15:33:25.97
>>932
winsock2にAF_MAXが定義されてないみたいだけど。
950片山博文MZボット ◆0lBZNi.Q7evd :2012/07/29(日) 16:17:56.52
自己解決しました。
951デフォルトの名無しさん:2012/07/29(日) 16:19:42.93
そろそろ次スレの季節。
せっかくなのでテンプレの改良をしてみた。
なにか意見があったら言ってくれ。
952>>1:2012/07/29(日) 16:21:06.65
プログラミング言語 D (D Programming Language) について語るスレッドです。

■本家
http://www.d-programming-language.org/ - 公式(英語)
http://www.kmonos.net/alang/d/ - 公式の和訳
http://d.puremagic.com/issues/ - D言語バグ報告
https://github.com/D-Programming-Language - D言語開発リポジトリ

■Wiki
http://dusers.dip.jp - D言語友の会(日本語フォーラムあり)
http://prowiki.org/wiki4d/ - Wiki4D(公認Wiki)

■前スレ
D言語 Part29
http://toro.2ch.net/test/read.cgi/tech/1329714331/

■過去スレ、関連スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000
953>>2(テンプレ終わり):2012/07/29(日) 16:24:32.77
■IDE
http://www.dsource.org/projects/visuald - Visual D(Visual Studioプラグイン)
http://code.google.com/a/eclipselabs.org/p/ddt/ - DDT(Eclipseプラグイン)

■ライブラリ
http://www.dsource.org/projects/dwt - DWT(GUIライブラリ)
http://www.dsource.org/projects/gtkd - GtkD(GUIライブラリ)
http://www.dsource.org/projects/derelict - Derelict(SDL/OpenGLなどのポーティング)
http://www.ku6.jp/keyword6/1.html - 傾き指向プログラミング(SDLなどのポーティング)

■D言語で作られたゲーム
http://www.nicovideo.jp/mylist/4453698 - D言語で作られた芝ゲー niconico動画
http://www.asahi-net.or.jp/~cs8k-cyu/ - ABA Games
954デフォルトの名無しさん:2012/07/29(日) 17:33:13.31
955デフォルトの名無しさん:2012/07/29(日) 19:01:20.60
友の会のうrlの最後に/が欲しいね
956デフォルトの名無しさん:2012/07/29(日) 20:27:07.36
何か違いがあるんか?
957デフォルトの名無しさん:2012/07/29(日) 21:04:49.34
違いが無いなら他にあわせたほうが一貫性があって素敵な男性なの
958デフォルトの名無しさん:2012/07/29(日) 21:28:42.85
ヒント:WebMoneyは奴の考えた都合の良いニンジン

全ては自己解決でおしまい
959デフォルトの名無しさん:2012/07/29(日) 21:50:15.82
Bitcoinなら手伝っちゃる
960デフォルトの名無しさん:2012/07/30(月) 03:45:36.69
>>942
ありがとうございます
関数型という独立した型があることを認識してませんでした…
(Dでは関数型=関数ポインタ型なんだと何故か思い込んでいた)
961>>2(テンプレ終わり):2012/07/30(月) 08:31:11.92
思い込むっつーか・・・ バグだろ明らかに。
だれが関数そのものの判定なんかするんだと。
962デフォルトの名無しさん:2012/07/30(月) 08:49:04.94
つ aliasパラメータ
963デフォルトの名無しさん:2012/07/30(月) 09:13:27.74
>>953
ライブラリの追加
https://github.com/Rayerd/dfl - DFL(非公式最新版)

>>961
それはテンプレに入れなくていい
964デフォルトの名無しさん:2012/07/30(月) 20:05:58.36
ここまでテンプレ
965デフォルトの名無しさん:2012/07/30(月) 20:36:56.34
IDEとかライブラリは更新しなくなったり開発先変わったりがよくあるんで、
テンプレ入れるのやめて友の会あたりをちゃんと更新しつつ、
そっちの該当ページのURL貼ったほうが混乱が減るんじゃないかなっていま思った。
966デフォルトの名無しさん:2012/07/30(月) 21:23:15.92
Wiki4Dもちゃんとメンテされてるのな
967>>2(テンプレ終わり):2012/07/30(月) 22:53:04.44
>>965
だからって、それを全く入れないとするとテンプレの用を為さなくなってくるわけでw
まあ、その時がきたら入れ替えればよし。
968デフォルトの名無しさん:2012/07/30(月) 23:53:38.90
>>961
関数型があるから、そこから関数の戻り型とか引数の型タプルとかが取れる
969>>2(テンプレ終わり):2012/07/31(火) 00:08:03.29
て訳で、適当に修正かけて立てました。

D言語 Part30
http://toro.2ch.net/test/read.cgi/tech/1343660743/

>>968
それ、関数型そのものを判定する理由になってなくね?
970デフォルトの名無しさん:2012/07/31(火) 09:37:01.08
判定する理由ってなんだ?判定したいから判定するんじゃい
971デフォルトの名無しさん:2012/07/31(火) 22:53:48.05
結局7月中には間に合わなかったか
972デフォルトの名無しさん:2012/08/01(水) 11:46:25.89
調理師の資格を目指しているのですが
食材を選ぶ時に油の量を減らす場合の
973デフォルトの名無しさん:2012/08/01(水) 11:57:15.49
デキストリン
974片山博文MZボット ◆0lBZNi.Q7evd :2012/08/02(木) 14:03:35.42
pragmaでライブラリをリンクできないのはなぜ?
975デフォルトの名無しさん:2012/08/02(木) 22:08:12.56
お前が差し込んでるのはアナルプラグだろうが
976デフォルトの名無しさん:2012/08/03(金) 06:20:43.30
DMD 2.060キター
977デフォルトの名無しさん:2012/08/03(金) 09:07:35.65
結局 >>776 >>799 は見送りになったのか
978片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 12:59:35.48
Wonders (Windows API for D)
http://katahiromz.web.fc2.com/d/wonders.html

できたよ。パブリックドメインだから100%free!!!
979片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 13:06:23.61
D1でコンパイルすると次のようなエラーが出てくる。
_error_ 00A428D8
Assertion failure: '0' on line 1434 in file 'expression.c'
ぐぐってもわからん。
980片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 14:02:08.12
dsource.orgに登録してもいいかな?
981デフォルトの名無しさん:2012/08/03(金) 14:06:17.95
えー
982デフォルトの名無しさん:2012/08/03(金) 14:16:51.35
ことわる
983デフォルトの名無しさん:2012/08/03(金) 14:33:24.25
bindings/WindowsAPIって既にあるけどさ、そっちはなんかまずいの?コンパイルできなくなってたりする?
984片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 14:34:03.34
>>982 どのあたりがダメだった?
985片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 14:35:50.85
>>983 Bindingsの方は、いろいろ間違いや不足する点が多かったから、
ハイスペックを目指したつもり。
986デフォルトの名無しさん:2012/08/03(金) 15:12:49.46
>>980
好きにすればいいんじゃないの。
987デフォルトの名無しさん:2012/08/03(金) 16:13:37.54
2.060・・手元では修正が不要だったよ(´・ω・`)
988デフォルトの名無しさん:2012/08/03(金) 17:37:53.63
顔文字間違っ……間違ってないのか、そうか。
989デフォルトの名無しさん:2012/08/03(金) 18:22:57.69
よく教育されているようだ
990デフォルトの名無しさん:2012/08/03(金) 19:59:37.64
こっちじゃalignの仕様変更でOPTLINKが爆死したり永遠に停止したりしたよ(゚∀゚)
991デフォルトの名無しさん:2012/08/03(金) 20:07:24.72
dmd main.d -L-lphobos2 -L-lcurl
でcurl使えた。(Ubuntu)
992デフォルトの名無しさん:2012/08/03(金) 21:01:04.95
-L-lphobos2はdmd.confに書いとくといいよ
993デフォルトの名無しさん:2012/08/03(金) 23:45:33.59
D言語で2Dのゲームを作りたいと思っているのですが、
DirectX、OpenGL、SDLのどれがお勧めですか?
多機能じゃなくていいので、初心者向けのシンプルなやつがいいです。
994デフォルトの名無しさん:2012/08/03(金) 23:48:12.92
そのような質問をする人にはD言語はオススメできません
995デフォルトの名無しさん:2012/08/04(土) 00:00:45.39
>>992
dmd.confのDFLAGSに書いてみた

$ dmd -v main.d -L-lcurl | tail -2
gcc main.o -o main -m32 -lcurl -L/usr/lib/i386-linux-gnu -L/usr/lib/x86_64-linux-gnu -Xlinker --no-warn-search-mismatch -Xlinker --export-dynamic -lphobos2 -lphobos2 -lpthread -lm -lrt
--- errorlevel 1

curlがphobosより前にあるとエラー起こすっぽい
undefined reference to `curl_global_init'
996デフォルトの名無しさん:2012/08/04(土) 00:25:53.94
DirectXとOpenGLを並べるのはいいけどSDLは根本的に違うものだと思う
SDL+OpenGLとかならわかる
997デフォルトの名無しさん:2012/08/04(土) 00:26:12.64
>>994
D言語自体が初心者向けではないか・・・
まあ、とりあえず適当に選んでやってみます。
998デフォルトの名無しさん:2012/08/04(土) 00:26:57.01
>>993
SDLが一番シンプルだけど、D言語(C/C++も)でゲーム作るのは簡単に挫折できるなw

ただゲーム作りたいだけなら、C#+XNAが一番簡単かもしれない。
Win限定だけどJITコンパイルでそれなりの速さだし環境整ってるし。
999デフォルトの名無しさん:2012/08/04(土) 00:32:14.04
>>996
SDLは別物なんですね。
>>998
C++もD言語もコンソールなら少々経験があるので、とりあえずやってみたいと思います。

DirectXとOpenGLならOpenGLですかねやっぱり。
これでいこうと思います。
1000デフォルトの名無しさん:2012/08/04(土) 00:33:07.04
>>999
頑張ってね。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。