D言語 Part29at TECH
D言語 Part29 - 暇つぶし2ch97:デフォルトの名無しさん
12/03/21 23:25:54.89
2.059のchange logリンクがあるのに実物がないのはどういうこと?

98:デフォルトの名無しさん
12/03/21 23:49:17.80
>>97
モノはない 出るのは一ヶ月くらい先

ページを自動生成するときの都合か何かでおかしなことになってる
苦情は出てるけどなかなか直らん

99:デフォルトの名無しさん
12/03/24 10:07:59.69
ねぇもっとD言語の話しようよ

100:デフォルトの名無しさん
12/03/24 20:52:55.54
話題があれば食いつく用意はあるんだが。
まあ更新ない時はまったりしてんのもこのスレらしくてよろし。

101:デフォルトの名無しさん
12/03/24 22:29:44.66
破壊が来たら盛り上がるよね

102:デフォルトの名無しさん
12/03/25 19:27:35.68
一部のマゾが盛り上がる陰で幾人もの同志が静かに去っていく

103:デフォルトの名無しさん
12/03/25 19:55:17.27
M言語に改名しようぜ

104:デフォルトの名無しさん
12/03/26 19:21:22.66
やっぱDが入ってないと…
ドM言語でいいんじゃないかな

105:デフォルトの名無しさん
12/03/26 20:34:08.46
DさんはSだからドS言語だと何度

106:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 03:59:22.76
Go-D言語

107:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 09:42:45.81
God言語

108:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 15:21:26.42
enum hello = ( ()=>writeln("hello") )();

これが通るようになればいろいろと楽しそうなんだが

109:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 15:26:43.39
コンパイル時にhelloって表示されたいってこと?

110:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 15:32:19.44
ちなみにこれは通る

enum a = (()=>0)();

111:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 15:35:01.45
>>110 ではつまらないから
アウトプットの出る処理は書けないかな~、と

112:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 19:18:02.90
コンパイルタイムIOか
andrei辺りがなんか言ってたとかそういう噂を聞いたという話を聞いたことがある

113:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 22:08:05.89
Windowsでパスに日本語が入ってるとstd.stdio.Fileが使えないんですが、
何か対処法は用意されてますか?

114:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 22:16:38.66
fopenにstringそのまま渡してんのか・・・アホすぎる
std.stream.Fileはちゃんとしてんのに
というわけなので自分でsjisに変換(std.windows.charset.toMBSz)してやらんと無理っぽい

115:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 22:26:02.92
ありがとうございます。
auto file = File(to!string(toMBSz(filename)));

116:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 23:59:26.58
そしてバージョンアップで直っててバグると

117:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 11:19:50.37
{
auto newComer = new Developer("今日からD言語始めます!");
}

118:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 11:33:57.05
newComerはガベージコレクト対象となります

119:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 20:25:53.76
D言語のおいしいとこかいつまんで教えてください

120:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 20:56:10.76
仕様変更に強いプログラマになれるよ!

121:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:08:31.21
配列と文字列が簡単に扱える C言語
それ以上を期待しなければ健康でいられる

122:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:29:35.05
理不尽なほど強力なテンプレート
最悪なほど凶悪なCTFE
慣れたが最期のスコープガード文

123:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:24:25.08
2.059のbetaが出てるけど、試した人いる?

124:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 03:08:02.90
どこからDLできるのか知らんけど

disruptive change とやらは結局不発に終わるのか

125:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 20:09:11.72
>>123 を探しにいったはずなのに

Github の dmd download に
なぜか Win用の curlライブラリ一式を発見するなど


126:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 21:07:29.09
Winでわざわざcurl使うってすげーー

127:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 01:20:22.57
URLリンク(ftp.digitalmars.com)

128:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 13:51:55.55
main を省いて モジュール単体でコンパイル~unittest実行ってできると
うれしいんだが

129:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 13:57:23.29
すべてのモジュールのmain関数をstatic this()を呼ぶのと同じ順序で言語が自動的に全部呼び出すとかどうすか
どうすか

130:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 14:44:57.84
>>129
よくわからん・・・mainを書かなくても暗黙的に追加されるってことかな?

Ruby みたいに ライブラリを1ファイルごとに実行したいの
scconfとdruntime に細工をかますだけでいけるかな

131:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 22:29:55.11
>>130
version(unittest){ void main(){} }
じゃだめですか

132:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 01:20:48.38
ファイル1個で走らせるときと
ライブラリ単位で走らせるとき

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

main.obj+Makeコマンド自動生成するのが近道だけどめんどい

133:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 11:04:39.58
一瞬
unittest { void main(){} }
に見えてぎょっとしたけどさすがに無理がある

134:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 18:40:22.89
D言語のAndroidの開発環境ってある?

135:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 18:56:02.67
ARM版gdcがHello World出せるようになった所

136:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 19:52:58.84
マジかよすげぇな
まあgccのバックエンドがあるならさもありなん

137:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 00:27:13.21
でもD1なんでしょう?

138:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 15:11:32.68
template A(string name)
{
const char[] A = "struct " ~ name ~ "{int a;}";
}
mixin(A!("S"));

は通るのに

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

は通らないのはなぜですか?

139:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 16:24:26.91
まず、
const char[] A = "struct " ~ name ~ "{int a;}";
こいつは文字列リテラルとしては扱われない

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

んだよね?

140:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 16:41:53.43
>しかしDのテンプレートはメンバがたかだか一つのメンバを持ってる場合
そうではなく、
そのテンプレートと同名のメンバは、名前の参照を省略できる。
mixin(A!("S")); は
mixin(A!("S").A);
の省略形でしかない。
>>138の答えにもなるかな

141:140
12/04/08 16:49:48.82
なんか不安になって公式見たらメンバが一つであることも条件みたいに書いてあって焦ったけど、
手元で試したらなんかそうでもないっぽい・・・

142:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 17:19:42.72
>>139-141
なるほどこうなるんですね
mixin("struct S{int a;}");
mixin("struct AA{int a;}");

納得しましたありがとうございます。

143:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 17:55:55.18
>>140-141
メンバ一つに限るっていう条件は 2.058 で外れたとかどこかで見たような

Eponymous Template っていうらしい

144:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 18:50:45.22
>>143
知らんかった…
俺の知識が1.0時代で止まってる
もうhello, world!も書けないな

>>140
補足Thx

145:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:53:28.30
D言語の破壊的変更以上に現代では女子高生が自慰をネット配信してたりすることに驚いている今日この頃
色々たまってるんでしょうね
早く次バージョン来ないかなぁ

146:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:54:42.29
enum HOGE : string{ H = "hoge" }
これ、-g つけると通らないんだな。
enum HOGE = "hoge";
は通るのにさ。

147:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 07:15:46.44
あ、それバグだったのか!?
なんてこったい

148:営利利用に関するLR審議中@詳細は自治スレへ
12/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
12/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;
}

150:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 14:27:53.94
ここはCスレになりました

151:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 15:08:11.86
つ import core.stdc.string;

152:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 15:10:51.55
void*とか、テンプレート涙目。

153:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 15:29:54.01
>>149
dmdが発狂したぞ

>>151
druntimeからCのコードを排除したいのですよ

154:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 15:32:47.77
unsigned charをubyteに変えてキャストの前にcastってちゃんとつければ使えると思うよ

155:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:58:44.35
CTFE ってこんなにひどいレベルだったのか・・・ぐぬぬ
URLリンク(d.puremagic.com)

156:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 19:00:21.88
コンパイルが通る奇跡に感謝しないと

157:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 19:34:15.06
遅いのならともかく out of memory とかw

158:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 20:13:37.09
本当に「コンパイラを作るのが比較的簡単な言語」なんだろうか

159:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 20:16:03.33
当初の売り文句のかなりの部分が反故にされてると思う

160:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 20:25:25.37
ウォルたん「ね、簡単でしょう?」

161:デフォルトの名無しさん
12/04/11 20:30:27.61
もう一度原点に立ち返るべき

162:デフォルトの名無しさん
12/04/11 20:50:23.38
(int main (((array string) args)))

163:デフォルトの名無しさん
12/04/12 13:19:34.64
OK: foreach (l; File(fname).byLine()) { }
NG: foreach (i, l; File(fname).byLine()) { }

下の場合は opApplyをもってないとダメになるみたいだが
これってバグだよな?

164:デフォルトの名無しさん
12/04/12 16:11:24.98
>>154
なんで気づかなかったんだろうってくらいに普通に動いたありがとう

165:デフォルトの名無しさん
12/04/12 17:32:31.78
>>163
仕様通りやん。

ライブラリにopApplyが定義されてないのがバグだって言うならそうだけど。

166:デフォルトの名無しさん
12/04/12 18:44:39.80
std.conv.parseで16進数文字列から数値に変換できるのか…
今更知った。

167:デフォルトの名無しさん
12/04/12 19:47:18.96
this = null;

168:デフォルトの名無しさん
12/04/13 02:35:58.51
プロセス間で変数を共有するのってsharedでできますか
無理すよね

169:片山博文MZボット ◆0lBZNi.Q7evd
12/04/13 14:04:09.45
誰かD言語用のパーサジェネレータ作ってください。

170:デフォルトの名無しさん
12/04/13 14:23:16.24
たぶんコンパイラのソースからぶっこぬいて
ライブラリ化するのがいちばん近道

171:デフォルトの名無しさん
12/04/13 14:33:18.67
パーサじゃなくてパーサジェネレータじゃね?
まあD言語を解析できるパーサを出力できるようにするには似たようなもんか

172:デフォルトの名無しさん
12/04/13 18:38:10.38
>>169
検索したらすぐ見つかったよ
URLリンク(github.com)
URLリンク(github.com)

173:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/13 18:54:09.89
>>166
std.conv.toは基本的に
・非文字列な値から文字列への変換:std.format.formatValueを使う
・文字列から非文字列な値への変換:std.conv.parseを使う
・その他安全なキャスト的な機能
を提供する。

175:デフォルトの名無しさん
12/04/13 18:57:40.58
>>168
sharedは1つのプロセス内のスレッド間で値を共有するために使う
プロセス間での共有は…std.mmfileかなあ
ごめん、自分は使ったこと無いので使えるかどうかは不明

176:デフォルトの名無しさん
12/04/13 19:47:37.63
よくFile(__FILE__)とか思いつくなあ

177:デフォルトの名無しさん
12/04/13 20:00:27.77
>>173のZipってopApply持ってないのに
どうやってタプルなforeachに対応してるの?

178:デフォルトの名無しさん
12/04/13 20:20:21.62
opApplyに対するforeachじゃなくてrangeメソッドに対するforeachにすり替えられているから

179:デフォルトの名無しさん
12/04/13 22:08:43.13
2.059

180:デフォルトの名無しさん
12/04/13 22:42:11.56
DAMASARETA!

181:デフォルトの名無しさん
12/04/13 23:15:50.64
change log 長すぎ

182:デフォルトの名無しさん
12/04/14 00:13:48.83
ほぼすにDのパーサ入れればいいのに

183:デフォルトの名無しさん
12/04/14 00:31:49.13
DWT2の修正してたらtoHash()の仕様変更で詰んだ
nothrowじゃないとあかんのか…

184:デフォルトの名無しさん
12/04/14 01:05:19.58
disruptive の片鱗に過ぎない

185:デフォルトの名無しさん
12/04/14 03:18:53.25
bugzillaの長さが…
D言語が完成されてきていいのか

186:デフォルトの名無しさん
12/04/14 03:44:09.38
たくさん書き直したからその分大量にバグっただけとも言う

187:デフォルトの名無しさん
12/04/14 18:00:58.75
unittestするのにrdmd使うのが便利だと最近知った

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



188:デフォルトの名無しさん
12/04/14 18:07:12.08
"キタ----!".writeln;

189:デフォルトの名無しさん
12/04/14 18:09:10.55
おお、これだよ、これ >>187
>>128 でほしいと思ってたのは・・・!

190:デフォルトの名無しさん
12/04/14 18:39:44.18
そんなのがあったのか!

191:デフォルトの名無しさん
12/04/14 19:16:45.96
ちっ

echo "void main(){}" | rdmd

192:デフォルトの名無しさん
12/04/14 19:44:47.09
どうしてDownloadsのとこは更新されないの?

193:デフォルトの名無しさん
12/04/14 20:37:14.42


194:デフォルトの名無しさん
12/04/14 23:01:52.85
2.0 changelog
Version D 2.059 Apr 12, 2012

195:デフォルトの名無しさん
12/04/15 01:52:34.10
Change Logの方は更新されてるのに↓は更新されてない

URLリンク(www.digitalmars.com)


196:デフォルトの名無しさん
12/04/15 02:02:27.47
なるほど古いページを見てるのか
>>1 のリンクは既に修正済みだというのに

197:デフォルトの名無しさん
12/04/15 02:05:44.00
こんなこと言っちゃいけないかもしれないけど
URLリンク(www.kmonos.net) ここのDownload D!ってのクリックしたんじゃないかな?

198:デフォルトの名無しさん
12/04/15 02:28:33.63
本来古いページは全部リンク転送されてるはずだから
>>195 がそのまま見れるのはバグといっていい

199:デフォルトの名無しさん
12/04/15 04:10:10.11
>>197
名推理

200:デフォルトの名無しさん
12/04/15 14:27:29.66
【急募】D言語の歌

201:デフォルトの名無しさん
12/04/15 15:28:27.39
BSDの歌からBSを抜けばよい

202:デフォルトの名無しさん
12/04/15 16:57:14.20
>>200
D言語好きは だいぶお利口♪
F#好きより いくらかCOOL♪
そこまで現実わかっているなら♪
もうひと頑張りでーす♪

203:デフォルトの名無しさん
12/04/15 17:19:00.35
T*からref Tへの暗黙変換ってできないんですか?

204:デフォルトの名無しさん
12/04/15 18:59:50.75
OpenGLの関数とかはDからはかなり扱いづらい

205:デフォルトの名無しさん
12/04/15 20:24:14.61
>>204
具体的にどのあたりが?

206:デフォルトの名無しさん
12/04/15 22:42:39.34
>>205
glShaderSourceとかの型まわり
OpenGLに限らずreadonlyなのにconstついてないCの関数とかはtoStringz使おうにもcastが要る

207:デフォルトの名無しさん
12/04/15 23:37:32.43
>>200
何もかもをほしがってた
子どものころのままでいられたらいいのに

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

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

この先、何度転んだって
誰にも止められやしないさ

208:デフォルトの名無しさん
12/04/16 10:25:33.03
URLリンク(twitter.com)

きた! メイン日本語リファレンスきた! これで勝つる

209:デフォルトの名無しさん
12/04/16 10:26:45.51
DのリファレンスはML

210:デフォルトの名無しさん
12/04/16 21:41:10.74
リファレンスが別のプログラミング言語で書かれてるのか
DさんのドSぶりにはもうついていけないな

211:デフォルトの名無しさん
12/04/16 21:51:11.95
CTFEで生成したDdoc文字列の適用とかできたら楽しそうだね

212:デフォルトの名無しさん
12/04/17 17:38:59.01
いい加減例のポンキッキーズのPちゃんみたいなキャラに名前付けようぜ

213:デフォルトの名無しさん
12/04/17 17:57:12.36
Dちゃん

214:デフォルトの名無しさん
12/04/17 18:50:55.71
ふう

215:デフォルトの名無しさん
12/04/17 20:23:41.58
はえーよ

216:デフォルトの名無しさん
12/04/17 22:16:24.78
今D言語でDコンパイラ書いてるけど何か欲しい拡張機能ある?
とりあえずPOWERとSPARCのインラインアセンブラは実装した。

217:デフォルトの名無しさん
12/04/17 22:59:19.66
拡張機能なんて実装しても
後で本家との互換性で苦労するだけだお

218:デフォルトの名無しさん
12/04/17 23:11:13.53
どこまでできてるんだろう

219:デフォルトの名無しさん
12/04/17 23:24:37.08
>>216
とりあえず Win で動いてソース公開してくれれば
後は何とかなる

欲を言えば非GPLで

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

>>219
phobosとdruntimeの一部はまんま載せてるのでライブラリはブーストにせざるを得ないかもわからんね

221:デフォルトの名無しさん
12/04/18 00:13:15.89
src/dmd/root/ってなんなんなん?
Cなん?C++なん?


222:デフォルトの名無しさん
12/04/18 00:27:08.72
>>221
拡張子はcだが中身はc++

223:デフォルトの名無しさん
12/04/18 01:19:44.53
しまった、見逃していた。次からはこれもテンプレにいれよう
URLリンク(bm98.yaneu.com)

224:デフォルトの名無しさん
12/04/18 12:58:43.69
C/C++ に疲れた人の D 言語 2.0
URLリンク(www.ie.u-ryukyu.ac.jp)

これも入れよう

225:デフォルトの名無しさん
12/04/18 14:00:31.96
Dだと仕様変更で疲れる

226:デフォルトの名無しさん
12/04/18 17:46:39.63
wikipedia の記事の構成を少し直した
手を入れやすくしたつもり

227:デフォルトの名無しさん
12/04/18 23:02:34.12
>>224
>C/C++ に疲れた人の D 言語 2.0

それ私の書いたやつそのまんまなんだけど何なんだろうなあ。ローカルにデータ落としてたのかな。


228:デフォルトの名無しさん
12/04/18 23:22:07.15
琉球大吹いたw

229:デフォルトの名無しさん
12/04/18 23:47:16.40
>>227
ついったに凸

230:デフォルトの名無しさん
12/04/19 00:52:29.06
読んだことあるなと思ったからURL移転してたのかと思ったけどぜんぜん違うのかww

231:デフォルトの名無しさん
12/04/19 16:38:41.93
Changed lexer to support # as a token, preserving #line's original behavior

うーん…
これはどういうものなのか教えて下さいな

232:デフォルトの名無しさん
12/04/19 17:10:06.48
>>231
"ABC" の " が単体でトークンじゃないのと同じように

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

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

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


ならないじゃねーか、コンチクショウっ!!

233:デフォルトの名無しさん
12/04/20 01:58:15.15
とりあえずの内部的な変更ってやつだな

234:デフォルトの名無しさん
12/04/20 02:34:11.67
>>208
協力者歓迎らしい @ github
URLリンク(github.com)

235:デフォルトの名無しさん
12/04/21 06:35:30.28
std.container.ArrayをVectorみたいな使い方しようと思ったけど中身のポインタ取れないんだねこれ

236:デフォルトの名無しさん
12/04/21 15:49:08.49
Dで実装した日本語全文検索システムがiccでビルドったやつより早くてワロタ
あとはCGIとして動かせれば・・・・・・。

237:デフォルトの名無しさん
12/04/21 16:41:10.01
>>235
どんな使い方かわからんからなんとも

238:デフォルトの名無しさん
12/04/21 16:56:34.81
>>236
そこまで書いたということは・・・分かるな?

239:デフォルトの名無しさん
12/04/21 17:02:47.97
スクリプトやインタプリタじゃねーんだからライブラリをまるっとスタティックリンクすりゃーイイだけじゃん?

240:デフォルトの名無しさん
12/04/21 17:07:10.67
(; ・`д・´)…ゴクリ…

241:デフォルトの名無しさん
12/04/21 17:40:15.20
64bitで動かないんじゃ

242:デフォルトの名無しさん
12/04/21 19:59:20.28
>>235 をなんとかできないかなーと、std.container.Arrayいじってたんだけど、バグかと思われる。
URLリンク(ideone.com)
(dmd2059xWindows)修正がてら追加した Array.Range.ptr を public にしとけば 235 も喜ぶんじゃないか?

243:デフォルトの名無しさん
12/04/21 20:07:00.82
ばぐぅぅぅ

244:デフォルトの名無しさん
12/04/21 20:35:43.76
>>236
Cと同じやり方でうごかせるんじゃねーの?

245:デフォルトの名無しさん
12/04/21 20:51:12.08
>>244
サーバーがdmdが対応してないOSとかじゃね?

246:デフォルトの名無しさん
12/04/21 21:21:29.22
>>245
GDC版使ってみるとか。
クロスコンパイラだし、試してみる価値はあるはず。

247:デフォルトの名無しさん
12/04/21 21:23:02.28
gdcって1.0系じゃ・・・

248:デフォルトの名無しさん
12/04/21 22:40:26.20
std.algorithm.mapにクロージャ渡したい

249:デフォルトの名無しさん
12/04/21 22:58:58.36
>>245
どっこい動かないんだよなぁLinuxなのに。gccバイナリはフツーに動くのに謎だ。ABIのせいか?

250:デフォルトの名無しさん
12/04/21 23:51:13.27
>>249
もしかして、HTTPヘッダ送信してないとか?

251:デフォルトの名無しさん
12/04/22 00:17:13.56
俺のエスパーによると権限の問題だ

252:デフォルトの名無しさん
12/04/22 11:35:17.62
>>248
mapもどきを自作しる

253:デフォルトの名無しさん
12/04/22 11:38:50.40
>>249
俺のエスパーによると
・文字コード
・実行ファイル名に依存する設定の漏れ
・リンケージ指定の漏れ(エントリポイントがmain以外の場合)

254:デフォルトの名無しさん
12/04/22 16:43:46.37
今さら気づいたけど何でコレ出来ちゃうの? おかしいだろ

enum { A=1,B=1 }


255:デフォルトの名無しさん
12/04/22 17:24:05.52
toImpl!ENUM とか final switch とか整合取れないと思うんだけどな~

256:デフォルトの名無しさん
12/04/22 17:37:27.49
>>255
ヒント
・宣言は式に含めることはできない
・無名enumは型宣言では無い

257:デフォルトの名無しさん
12/04/22 19:18:56.08
するとtypeof(A)はintになるのか

258:デフォルトの名無しさん
12/04/22 20:10:49.65
>>257
その発想は無かった。

ので、試してみた。
URLリンク(ideone.com)

259:254 訂正
12/04/22 20:17:38.19
今さら気づいたけど何でコレ出来ちゃうの? おかしいだろ

enum E { A=1,B=1 }

260:デフォルトの名無しさん
12/04/22 21:16:03.50
>>259
結局何が言いたいんだ。

261:デフォルトの名無しさん
12/04/22 21:40:49.13
列挙型 が値の重複を許すというのがC系言語の伝統であるという
衝撃の事実をもってこの討論の終わりとしたい


な、納得なんかしてないんだからね、誤解しないでよねっ

262:デフォルトの名無しさん
12/04/23 00:40:18.85
enum E { A=1,B=1 }
static assert(E.A != E.B);
これがだめなのが悲しいってことでしょ

263:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/23 03:06:00.40
E.T == alian

265:デフォルトの名無しさん
12/04/23 15:10:41.07
alias E.T alien;

266:デフォルトの名無しさん
12/04/23 15:24:17.25
alian を align に空目した俺は、

>>234 には協力できそうにないな・・。

267:デフォルトの名無しさん
12/04/23 15:37:02.70
クロージャ周りでGCのバグ無いか
発生条件わからんが

268:デフォルトの名無しさん
12/04/23 15:51:06.89
GCじゃないな
クロージャ使うとローカル変数が逝ってセグフォ
クロージャの引数型ちゃんと書いたら起こらなくなった
似たような症状ない?

269:デフォルトの名無しさん
12/04/23 16:19:56.62
構造体リテラルと見分けづらい書式だったり?

270:デフォルトの名無しさん
12/04/23 18:50:21.09
>>261
歴史的な理由で、同じ値を使うのが適切なこともある。

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

enum CharctorSet
{
 Shift_JIS = 932
 SJIS = 932
 x-sjis = 932
 MS_Kanji = 932
}

271:デフォルトの名無しさん
12/04/23 19:24:27.54
あー納得した

納得したのはいいが
いつになったらMS932がちゃんと使えるようになるのだということを思い出して悲しくなった

272:デフォルトの名無しさん
12/04/23 22:44:14.61
え?
D言語を使っている外国人は
UTF-8かUTF-16で我慢しろってお達しだけど
知らなかったの?

273:デフォルトの名無しさん
12/04/23 23:01:33.95
C#のEncodingみたいなのくれよ

274:デフォルトの名無しさん
12/04/23 23:07:06.58
>>273
言いだしっぺ登場!待ってました!

275:デフォルトの名無しさん
12/04/23 23:26:59.10
URLリンク(site.icu-project.org)
興味はある。
やる気が続くかは知らない。
応援されたらやる気出る・・・かも?

276:デフォルトの名無しさん
12/04/23 23:58:33.05
今年も自分の誕生日を知らせるソフトが起動した
もう二度とコンパイルできないけどな

277:デフォルトの名無しさん
12/04/24 00:17:37.84
こんな悲しいレス見たの初めてだ

278:デフォルトの名無しさん
12/04/24 00:18:46.48
ソースをアップデートしてないからコンパイルできないって意味だよなw

279:デフォルトの名無しさん
12/04/24 00:19:11.98
おめでと…ううっ

280:デフォルトの名無しさん
12/04/24 00:20:50.23
他の言語にパッケージマネージャが整備されているように、
Dにはコンパイラマネージャが必要なのだ

281:デフォルトの名無しさん
12/04/24 00:24:34.05
>>278
D2できたばっかりの頃ののコードだからな

>>279
ありがとう
D言語10周年記念にはDちゃんの同人誌を出そう

282:デフォルトの名無しさん
12/04/24 00:34:15.28
これか・・・
URLリンク(www.city.daito.lg.jp)

283:デフォルトの名無しさん
12/04/24 00:38:55.56
>>282
それだけ愛嬌溢れるマスコットならどれだけ普及していたか

284:デフォルトの名無しさん
12/04/24 02:00:42.04
URLリンク(i40.tinypic.com)

285:デフォルトの名無しさん
12/04/24 02:18:50.61
.o o
< /
p ~q
|д >
|,__/
./ >
J L

286:デフォルトの名無しさん
12/04/24 09:14:48.89
Ver指定で自動変換してくれるソフト欲しい。
自動で出来ない所は指摘してくれれば良し。

287:デフォルトの名無しさん
12/04/24 09:52:28.53
var指定で自動変数にしてくれる現状のdmdで我慢汁!

288:デフォルトの名無しさん
12/04/24 10:51:52.93
そういうのを自動でしづらい奴が deprecated されていくのではないか

リリースごとに移行ガイドはあっていいと思うけど

289:デフォルトの名無しさん
12/04/24 11:37:38.87
#! /bin/dmd-manager 2.058
import std.stdio;
void main() { ... }

290:デフォルトの名無しさん
12/04/24 15:42:25.90
このVerのdmdで通ったと指定すると、最新リリースに自動変換かけて、移行ガイド+注意点+対象行を表示する感じ。
標準リリース内容全てをやってくれるとありがたい。Ver履歴を自力でたどるの面倒。
あと公式サイトのコード例が一部動かないけど、サイト全体をautobuild管理しないの?
公式サイトの文書も文書担当コミッタがバグ管理とか。

D言語はじめたばかりなんで、的外れだったらスマン。

291:デフォルトの名無しさん
12/04/24 16:02:47.60
公式はウォルターの趣味サイトだからなあ

292:デフォルトの名無しさん
12/04/24 16:49:23.66
公式サイトもバグレポ対象

293:デフォルトの名無しさん
12/04/24 16:54:43.14
>>290
そういう足枷をなくしてやりたい放題なところが
Dのよいところでもあり、悪いところでもあり、悪いところでもあり、わ(ry

Java+Eclipse みたいに
枠にはめて手取り足取りなのに憧れを感じはするけども

294:デフォルトの名無しさん
12/04/24 17:14:44.26
あるいは開発サイドにそのような概念を持ち合わせていないという可能性も

295:デフォルトの名無しさん
12/04/24 17:58:59.32
>>293
悪いところが(ry
やりたい放題は良いんだけど、VerUP補助ツールくらいは作れるはず。
ツールを通すと自動で出来る所は勝手に変換して、人力部分は行数と変更点を表示。
表示行を手動で直せば最新で通る、みたいな。

296:デフォルトの名無しさん
12/04/24 22:33:02.90
仕様変更についてはChangeLogから作れるかもしれないけど
副作として生じたバグや挙動変化もあるから
簡単じゃないと思う

297:デフォルトの名無しさん
12/04/25 00:21:26.95
Google Code Jam のせいで Dの注目度が少し高まっているらしい

298:デフォルトの名無しさん
12/04/25 00:26:48.83
仕様にない挙動変化やバグは他の言語でもあるから、仕様部分だけでもやってくれると楽。

299:デフォルトの名無しさん
12/04/25 12:30:36.97
dmdさん、ミスタイプ用の識別子予測でdeprecatedの関数薦めないでください

300:デフォルトの名無しさん
12/04/25 19:58:19.18
うぉるたくん「そのくらいのことで いちいちさわぐな」

301:デフォルトの名無しさん
12/04/25 21:22:09.97
うぉるたくん「やっぱり ぼくが かんがえた ぷろぐらむげんごが いちばん つよいんだ」

302:デフォルトの名無しさん
12/04/25 21:30:35.49
けっきょく Dが いちばんつよくて すごいんだよね

303:デフォルトの名無しさん
12/04/25 21:41:56.48
でぃー「わたしを つかいたいのならば ちからをしめせ」

304:デフォルトの名無しさん
12/04/25 22:33:09.90
D.NET欲しいわ……

305:デフォルトの名無しさん
12/04/26 22:24:23.40
自作の試作コンパイラを試しにpragmaでバージョン指定できるようにしてみたんだけど
ver.毎のphobosのライブラリとソース、レキシカルアナライザを載まなきゃいけないから
コンパイラがアホみたいにでかくなる
ちょっと実用的じゃないね。。。

306:デフォルトの名無しさん
12/04/26 22:32:24.22
>>304
ネイティブ動作という一番のD言語の使用動機を全否定かッ

307:デフォルトの名無しさん
12/04/26 22:42:12.91
そこはnewest version に対するdiff添付で
LTPT (linktime patch technology)だろ!

308:デフォルトの名無しさん
12/04/26 23:04:49.83
>>307
似たような考えでコンパイル時コンパイラ自動生成も今書いてる
鈍足のC++じゃ絶対できないな

309:デフォルトの名無しさん
12/04/26 23:08:14.61
まさかのこのD言語はD言語で書かれています?

310:デフォルトの名無しさん
12/04/26 23:09:12.14
無論 D by D ですよ

311:デフォルトの名無しさん
12/04/26 23:19:05.15
バージョンアップが辛いと思う人はD使わない方が幸せになれると思う

312:デフォルトの名無しさん
12/04/26 23:54:18.92
CだかC++じゃなかった?

313:デフォルトの名無しさん
12/04/27 00:04:30.51
これってウインドウズのGUIのソフトとか作れんの?

314:デフォルトの名無しさん
12/04/27 00:09:13.91
32bit版限定ならそれなりに。
APIを使いこなせる人じゃないと厳しいだろうけど

315:デフォルトの名無しさん
12/04/27 00:19:18.35
理論上はなんでも作れるけど・・・
ライブラリが整備されてない所はすんごく大変w

316:デフォルトの名無しさん
12/04/27 00:24:28.61
今時のを作りたいなら.NET+WPFだろうね

317:デフォルトの名無しさん
12/04/27 00:32:02.64
なるほどありがとうエロい人たち
ローレベルから掘ってく感じなのね

318:デフォルトの名無しさん
12/04/27 00:48:46.30
高レベルなライブラリが出来にくいのは
言語~ライブラリレベルで破壊的な仕様変更が頻繁に行われているからだよ
そういうのが嫌ならうぉるたくんをひっぱたいて反省させてあげてね

319:デフォルトの名無しさん
12/04/27 01:26:20.20
あ、対話環境欲しいです。

320:デフォルトの名無しさん
12/04/27 01:42:29.62
あたいも環境ほしいです。

321:デフォルトの名無しさん
12/04/27 08:52:23.48
>>313
手っ取り早くWin32のAPI使いたい場合、今もメンテされてるのは
URLリンク(www.ku6.jp)

URLリンク(pen-jr.org)

>>30の人がDWMAPIとか使ってる。

322:デフォルトの名無しさん
12/04/27 11:42:56.02
>>321
あれ、dsource.orgのやつはもはや古いのか……?

323:デフォルトの名無しさん
12/04/27 18:43:23.22
ライブラリの情報ってどこで取れば良いの?

324:デフォルトの名無しさん
12/04/27 20:59:24.44
ついったで呟く

325:デフォルトの名無しさん
12/04/27 21:28:10.91
ついったはまず名無しにしてくれ
変化が大き過ぎるから都度聞くしかないか

326:デフォルトの名無しさん
12/04/27 21:30:40.92
実はD言語って今でも普通に使ってたり使えてたりする人多いんかな

327:デフォルトの名無しさん
12/04/27 21:32:29.72
一年前と比べるとかなり実用レベル

328:デフォルトの名無しさん
12/04/27 21:49:43.72
なんかの大会だかコンテストで参加者のコードが見れるんだけど1位の人がD言語使ってたってちょっと話題になったよね。

329:デフォルトの名無しさん
12/04/27 22:19:40.07
今だからこそ前より使える

330:デフォルトの名無しさん
12/04/27 22:51:58.18
これだな 今から参加できるのかな?
URLリンク(code.google.com)

331:デフォルトの名無しさん
12/04/28 03:56:40.05
cast(auto)とか出来るようにならないかなあ

332:デフォルトの名無しさん
12/04/28 06:03:59.12
何その暗黙的明示キャスト

333:デフォルトの名無しさん
12/04/28 07:36:03.54
= の右側に単独にある場合や
関数の引数に単独にある場合に使うのか

334:デフォルトの名無しさん
12/04/28 10:05:52.19
そりゃ言語じゃなくてIDEの機能だべ

335:デフォルトの名無しさん
12/04/28 13:05:32.23
それいったらauto自体がIDEの機能だし
テキストエディタで書きやすいって特徴を伸ばすのはありだと思う

336:デフォルトの名無しさん
12/04/28 13:09:12.51
支援機能無しじゃとても書いてらんねえマークアップ言語とか
わざとやってんじゃねーかと思えるテキストデータ形式が増えたよね

337:デフォルトの名無しさん
12/04/28 13:13:41.29
Javaとかエディタで書くと苦痛そのものだがDではその苦痛がほとんど無い
templateのカッコ省略とかも何気にステキ機能

338:デフォルトの名無しさん
12/04/28 13:19:18.37
IDEが必要なのは抽象化機能の不足

339:デフォルトの名無しさん
12/04/28 13:42:34.66
auto はテンプレートとかクロージャのために必要と思ってる

>>331 は 中身わからないけど alias とか使うと幸せかも知れない

340:デフォルトの名無しさん
12/04/29 00:57:23.74
pure nothrow @safe const とか長い修飾子ちゃんと付けてるひといるのか

341:デフォルトの名無しさん
12/04/29 01:16:59.61
その前に、Dのcastって、相当低レベルな処理だぞ。
簡単にautoとか出来るような処理してないぞ。

342:デフォルトの名無しさん
12/04/29 02:24:19.29
constとinとimmutableはつける
後は……

343:デフォルトの名無しさん
12/04/29 10:27:03.09
autoがvarに変更にならないかな
Cのauto変数と意味が違うからどうも

344:デフォルトの名無しさん
12/04/29 11:41:02.15
c++11と同じだから問題ない

345:デフォルトの名無しさん
12/04/29 12:11:06.92
@safeとかnothrowとか微妙に推論してくれるようになった気がしたけどそんなことはなかったぜ

346:デフォルトの名無しさん
12/04/30 07:00:25.31
poseidonって完全更新とまってる?
() => (...) があるとparserが失敗する・・・

347:デフォルトの名無しさん
12/04/30 13:07:09.03
なんか前はinPatternでa-z指定してもA-Zにマッチしてたような気がしたけど
いましないねいつ変わったんだろう それとも気のせいかな・・

348:デフォルトの名無しさん
12/04/30 13:34:36.07
>>346
死んでるなぁ→どっこい生きてた→死んでるなぁ→どっこい生きてた→死んでる ←いまここ

349:デフォルトの名無しさん
12/04/30 13:49:30.91
>>346
ソースのライセンスも明記されてないような・・・

350:デフォルトの名無しさん
12/04/30 15:46:17.03
VisualD使え捗るぞ

351:デフォルトの名無しさん
12/04/30 18:12:02.99
VS2008だとShell入れないといけないし、VS2010は登録しないと使えないし・・

352:デフォルトの名無しさん
12/04/30 21:41:31.93
visualDってプロジェクトごとにライブラリやインクルードするフォルダの設定とかできる?

353:デフォルトの名無しさん
12/04/30 22:14:57.47
だれかblazeって使ってる人いる? box2dをD言語に移植したやつらしい.
これやるのとbox2dをC経由で使うのとどっちのがいいのかなぁ

354:デフォルトの名無しさん
12/05/01 01:07:30.21
18スレ目見る限り(Demoを)動かした人は多数いる模様

355:デフォルトの名無しさん
12/05/01 01:18:27.48
これのライセンスって商用利用時にも使いましたと明記する必要なしって読めたけどあってる?
でも2009以降の更新がないということは・・・・

356:デフォルトの名無しさん
12/05/01 02:42:29.15
blazeコンパイルしてみたけど挙動がおかしい\(^o^)/

357:デフォルトの名無しさん
12/05/01 13:32:47.13
>>356
2.059でmakeかけたらコンパイラに怒られまくったorz

358:デフォルトの名無しさん
12/05/01 15:03:26.23
自分で機能追加とかする気がなければラッパーで・・・って
C++じゃそうもいかんべ


359:デフォルトの名無しさん
12/05/01 16:27:47.44
>>357 2.059でもinoutとビット演算の部分なおしただけでコンパイルは通ったけど・・・

360:デフォルトの名無しさん
12/05/01 17:12:51.04
LF改行の中に CRLF が混じってて行番号ずれに悩んだ・・・ぐぬぬ

361:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/05/01 17:35:13.99
>>361
class bzNullContact : bzContact
{
this() {
super(null, null); // 実行時にぬるぽ
}
}
いや、コンパイラがそんなとこまで頑張らなくていいから・・・w

363:デフォルトの名無しさん
12/05/01 17:36:40.42
コンパイラじゃなくてオプティマイザの仕業だったかも

364:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/05/02 01:07:28.28
helloWorld.dを実行すると
一辺1.0のBoxが y=4.0 から自由落下した結果
y座標が3.9972~0.9972まで変化して表示されるんだけどこれって正しい動作?
0.0028ずれてない・・・?

366:デフォルトの名無しさん
12/05/02 08:29:26.71
>>364
新しいdmdは賢いからそういうおかしなコードは通らない。元々許してたのがおかしいんだけど。

367:デフォルトの名無しさん
12/05/02 11:37:01.30
VisualD 0.3.32

368:デフォルトの名無しさん
12/05/02 19:14:41.32
>>365
それもおかしいし,落とす物体の初期x座標を0.01ほどずらすともはやカオス

369:デフォルトの名無しさん
12/05/03 23:34:36.20
ふとしたことからiniファイル読むプログラム作るはめになりそうなんだけど
std.iniって結局phobosに入るの?

370:デフォルトの名無しさん
12/05/04 00:08:48.17
わざわざ入れるほどのものでもない
ほしければ自分で取り込めばイイ

機能追加とかも考えにくいし

371:デフォルトの名無しさん
12/05/04 01:31:33.64
入らないっぽいのか
じゃあ自作するかー。Dなら5秒で書けるだろ

372:デフォルトの名無しさん
12/05/04 02:56:38.92
なんかblazeメンテされてないから最新のBox2DをBox2D4Dとかの名前で移植しようかと思ったけど
全部だとめんどいですね。ポーティングの方がいいのかな。でも元ソースがC++という・・・

373:デフォルトの名無しさん
12/05/04 21:55:08.86
D言語で構造体変数の参照(非ポインタ)をreturnする場合って↓みたいにすればコピーコンストラクタ走らないですか?

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

C言語で言うと↓見たいのがやりたいです
const S& f(){return m_s;}

374:デフォルトの名無しさん
12/05/04 22:29:45.50
>>373
戻り値のref は左辺値として使う時専用みたい。
構造体Sにint x; というメンバがあるとして、
f().x = 10; // コピーコンストラクタは走ってない。
戻り値を代入すると、
auto s = f(); // コピーコンストラクタが走る。
みたいな感じ。

375:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/05/05 02:07:40.10
ss を初期化する時点でコピーされる
C++ の参照でも同じじゃん

377:デフォルトの名無しさん
12/05/05 02:22:08.78
コピーされたなら コピーコンストラクタのthis(this);が呼ばれない?
"copy ctor!"が出力されてないからthis(this);が呼ばれていない⇒コピーされていないって思ってるのだけど

378:デフォルトの名無しさん
12/05/05 02:46:11.89
this(this) はビットコピーが完了した後呼ばれる・・・呼ばれてないな

379:デフォルトの名無しさん
12/05/05 02:50:30.52
D2の構造体は複雑だなあ・・・
URLリンク(ideone.com)

バージョンが古いので、最新版でどうなってるかは分からん。

380:デフォルトの名無しさん
12/05/05 02:56:24.92
もう少し詳しく。
URLリンク(ideone.com)

381:デフォルトの名無しさん
12/05/05 16:39:51.62
>>372
フォーラム見てるとBox2D4Dってプロジェクトはアルっぽいけど動いてなさげ
box2dをDに移植するのと,blazeをD2に移植するのどっちが楽なんだろ.blazeはどの程度使いまわし出来るんだろ

382:デフォルトの名無しさん
12/05/05 18:38:09.08
>>381
・blaze⇒D2
 ほぼsed等の置換でD2に対応出来た
 元のソースのバージョンが古いためスプライト描画等の機能が少ないと思われる。
 挙動がおかしい?
 最新版のbox2dとはファイル構成をはじめ結構違う

・最新のbox2d⇒D2
 移植めんどい
 C++等でbox2Dを使用したソースを流用しやすい(古い版を使用したソースはその辺に転がってない・・)
 blazeのベースとなった当時よりbug fixされていて安定していると思われる

383:デフォルトの名無しさん
12/05/05 23:03:01.91
>>380
なんか"this"の出力多いな、と思ったんだが、opAssign の副作用で呼ばれてるのか
URLリンク(ideone.com)
これ見る限りでは >>375-378 にあたる"-3-"で"this"が出力されないところだけおかしいってとこかな。

384:デフォルトの名無しさん
12/05/05 23:22:34.43
copy on writeとかの処理ミスってるぽい動きだなあ

385:デフォルトの名無しさん
12/05/06 16:40:05.29
ビットコピーだけして終了してる感じなのだろうか

386:デフォルトの名無しさん
12/05/06 21:38:32.29
SQLiteって今のDでだれか使ってる?
すぐに使えるのなら使ってみたいんだけど。

387:デフォルトの名無しさん
12/05/06 21:45:12.81
検索したら出てきた

URLリンク(d.hatena.ne.jp)

388:デフォルトの名無しさん
12/05/06 21:52:33.17
生のC用APIそのままでいいなら普通に使ってるよ

389:デフォルトの名無しさん
12/05/06 22:58:43.31
Dを普通に使ってるのもすごいな・・・

390:デフォルトの名無しさん
12/05/06 23:01:06.57
ウィジェット・ツールキット以外は使えるんだよ、それ以外は。

391:デフォルトの名無しさん
12/05/07 23:17:28.41
shiftjisのファイル読みたいんだけど、Dで手っ取り早い方法ある?

392:デフォルトの名無しさん
12/05/08 01:47:58.64
>>391
WindowsでUTFを使う

今も使えるかは知らない

393:デフォルトの名無しさん
12/05/08 02:30:24.25
>>391
std.windows.charset.fromMBSz があるじゃなーぃ
URLリンク(dlang.org)

394:デフォルトの名無しさん
12/05/08 12:29:56.48
char*に突っ込む

395:デフォルトの名無しさん
12/05/08 19:42:46.79
jcode.d

396:デフォルトの名無しさん
12/05/08 23:02:25.71
Dを何気ないツール書くのに使うときってtemplateとか素敵機能使う?
俺ベターC++的な使い方以上なかなかできない

397:デフォルトの名無しさん
12/05/08 23:23:02.36
むしろテンプレートだと意識してないかもしれない
to!int(n) とか頻繁に出てくるし、
void foo(T)(T n) {} とか普通に書くよ

398:デフォルトの名無しさん
12/05/08 23:34:39.88
逆にテンプレートがないと書けない。
C++もboostがないと書けない。

399:デフォルトの名無しさん
12/05/08 23:59:58.61
(T)(in T[] list, ..){ ...
みたいのはよく使う

400:デフォルトの名無しさん
12/05/09 08:00:22.38
C++にない機能はあんまり使わないかも。
2進数リテラルとforeach、レンジ、スコープガードを使うくらいかな?

401:デフォルトの名無しさん
12/05/09 19:50:19.92
組み込みの連想配列とか配列スライシングは頻繁に使う
C++でもできるけど文法面がけったるいというか
あと型推論

文字列もimmutableになってるのは結構便利だったりするし

402:デフォルトの名無しさん
12/05/09 20:36:49.01
std.xmlめ、行内にascii以外の文字があるとインデントがでたらめになりやがる

どうせ直さないのはわかってるけど結局今phobosのXMLはどうなってるの?

403:デフォルトの名無しさん
12/05/10 01:25:04.60
C++のfriendとかどうやって移植すればいいんだ・・・

404:デフォルトの名無しさん
12/05/10 01:55:03.66
普通に同じモジュールで

405:デフォルトの名無しさん
12/05/10 03:14:18.14
private は、同じクラスのメンバのみが参照できる、 あるいは同じモジュールのクラス/関数のみが参照できることを示します。 private メンバをオーバーライドすることはできません。 モジュールのメンバを private と宣言するのは、 C での static宣言と同等です。

406:片山博文MZボット ◆0lBZNi.Q7evd
12/05/10 18:16:16.58
D言語のWin32 APIサポートは貧弱みたいだね。何かいいのある?

407:デフォルトの名無しさん
12/05/10 18:26:13.26
最近あんまり触れてなかったからよくは知らないけど
BindingsプロジェクトのWindowsAPIとか使えるんじゃね?

408:片山博文MZボット ◆0lBZNi.Q7evd
12/05/10 18:30:45.82
>>407 サンクスヴェリーマッチョ

409:デフォルトの名無しさん
12/05/10 20:14:30.52
>>404
C++の元のソースがあんまり関係ないクラスのprivateメンバをチラ見したいがためにfriend指定してるっていうひどい作りなので
そういうクラスたちを一緒のファイルに入れるのがすごく抵抗あるんだ
しかもそんな利用法のfriendが大量に並んでるからものすごいカオス
真っ当じゃない使い方のfriendに相当する機能がないってことは設計から見直すしかないのか・・・・・

410:デフォルトの名無しさん
12/05/10 20:26:14.75
>>409
1モジュールに全部詰め込んでしまえばいい。

411:デフォルトの名無しさん
12/05/10 20:33:34.07
>>409
なんだそのカプセル化の基本を無視したコーティングはwwww
逆に興味ある。

412:デフォルトの名無しさん
12/05/10 20:34:58.13
>>410
頭いいな!そうする

413:デフォルトの名無しさん
12/05/10 20:36:00.10
publicでいいんじゃね?w

414:デフォルトの名無しさん
12/05/10 21:05:36.02
ここまで作った。(なげやり)
URLリンク(ideone.com)

415:デフォルトの名無しさん
12/05/10 21:44:12.04
character

416:デフォルトの名無しさん
12/05/10 23:39:20.62
>>414
cast(immutable)なこと出来たのかー

417:デフォルトの名無しさん
12/05/11 00:05:18.70
実態は大差ないけどassumeUniqueの方がいいかもね

418:デフォルトの名無しさん
12/05/11 00:09:30.34
assumeUnique()の「決意表明である!」みたいな説明を見て
なんとなく不安になるのは俺だけじゃないはず

419:デフォルトの名無しさん
12/05/11 00:20:53.74
「コードを書く側がimmutable性を保証する」って意味だからそんなに怖がらなくても

420:デフォルトの名無しさん
12/05/11 00:22:36.71
心折れそう。(まだ途中)
URLリンク(ideone.com)

421:386
12/05/11 00:46:05.19
>>387,388
遅くなったけどありがとう
程々にがんばってみるよ

422:デフォルトの名無しさん
12/05/11 01:32:04.42
Linuxはiconv使えばいいかな

423:デフォルトの名無しさん
12/05/11 18:49:32.68
box2d4dのコードをD2用になおして動かしてみたんだ.
バウンドすらしねえ

424:デフォルトの名無しさん
12/05/11 20:33:47.56
SWIG でなんとかならんかな~と思ったけど
情報が少なすぎて手も足も出ない

425:デフォルトの名無しさん
12/05/12 09:27:59.41
これってどっちもOKじゃなかったっけ?1の方がエラーになる
1:
std.stdio.writeln("xxx");

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

-----------------------------------------------------------
Error: undefined identifier std

426:デフォルトの名無しさん
12/05/12 09:38:23.12
std.stdio.って付けてもimportの省略とかはできませんよ
同じ名前の関数が別モジュールで複数ある場合に「どこの」関数であるかを明確にするために使います

427:デフォルトの名無しさん
12/05/12 10:01:03.44
あれ?おっかしいなぁstd.conv.toはできるんだけど
↓とかv2.059でも行けた。でもwritelnの方にはつけるだけじゃだめぽい

import std.stdio;

void main()
{
writeln(std.conv.to!int("123"));
}

428:デフォルトの名無しさん
12/05/12 12:19:28.09
>>427
ただのバグです。static importが無視されるってのは大昔からある伝統的なバグ。
最近若干改善されたから >>425 が正しくエラーになるようになった。
URLリンク(d.puremagic.com)

429:デフォルトの名無しさん
12/05/12 12:22:26.74
ばぐっすかーなるほど

430:デフォルトの名無しさん
12/05/13 11:37:20.50
>>27-29
en.wikipedia の TLS には書いてあるのを見つけた

431:デフォルトの名無しさん
12/05/13 11:48:07.43
公式の Glossary に UFCS の項目がないのは重大な手落ちだと思うんだ
誰か(ry

432:デフォルトの名無しさん
12/05/13 23:11:49.02
いつからだ・・・・いつから
「new 構造体()」が実体じゃなくポインタを返すようになったんだ・・・・

433:デフォルトの名無しさん
12/05/13 23:17:16.99
構造体newの犠牲者がまた一人

434:デフォルトの名無しさん
12/05/14 00:01:48.44
実体を返してた時代があったのか・・・
Phobosがstruct使いまくりだした時代にはもうそれがなくなってたのかな?

435:片山博文MZボット ◆0lBZNi.Q7evd
12/05/14 11:10:32.63
誰かD言語用の入力補完システムを作ってくれませんか?

436:デフォルトの名無しさん
12/05/15 12:56:13.75
iconvの使い方って、本当にこれでいいのだろうか・・・
URLリンク(ideone.com)

437:デフォルトの名無しさん
12/05/15 16:09:06.52
WideCharToMultiByteは置き換えられない文字は?になるけどiconvは途中までの結果でエラーリターンしてくるぜ。

438:デフォルトの名無しさん
12/05/16 08:14:42.31
構造体をnewしたことないわw

439:デフォルトの名無しさん
12/05/17 09:12:29.92
D言語で書かれた国産ソフトってある?
ゲーム以外で。

440:デフォルトの名無しさん
12/05/17 10:07:56.85
うちの会社のデータ処理アプリ
分析やら整形やら

441:デフォルトの名無しさん
12/05/17 16:32:02.35
使えるようで使えないのがD言語
大した使用の差なんてないくせにいつまでもベータ版気取りやがって!!

442:デフォルトの名無しさん
12/05/17 16:40:32.33
別に値打ちこいてる訳じゃなくて
あまりに魅力無いからレイプしたいと誰も思わないだけ

443:デフォルトの名無しさん
12/05/17 19:10:50.98
GUIがろくに書けない時点で作れるソフトの選択肢が大幅に

444:デフォルトの名無しさん
12/05/17 19:14:20.52
標準入出力のパイプで通信してGUIの構築とか入力の受け取りとかやってくれるソフトないの?

445:デフォルトの名無しさん
12/05/17 19:48:02.92
gtk-serverとか?
破壊的変更毎に修正する手間はかけられない。
つまり普及の最大の障害人物は(ry

446:デフォルトの名無しさん
12/05/17 19:55:37.23
とりあえずstd.datetimeを捨ててくれたら使ってやる。
あれが必須レベルでリンクされるとか実用の妨げにしかなってない。

447:デフォルトの名無しさん
12/05/17 20:15:06.31
rdmdって単一ファイルにしか使えないの?
importで別の.dソースファイル参照するとか出来れば幸せなんだけども

448:デフォルトの名無しさん
12/05/17 20:44:38.62
>>439
URLリンク(www.vector.co.jp)

449:デフォルトの名無しさん
12/05/17 21:24:35.80
私に良い考えがある。
破壊的変更をしないベターC++としての、D--を作って普及させるんだ。

450:デフォルトの名無しさん
12/05/17 21:51:23.73
>>446
何があかんの?

451:デフォルトの名無しさん
12/05/18 07:44:25.00
でかいんでしょう

452:デフォルトの名無しさん
12/05/18 07:59:19.46
std.regexって今後小さくなるかな
GCとかも

453:デフォルトの名無しさん
12/05/18 19:58:34.30
間違いなく大きくなりますね

454:デフォルトの名無しさん
12/05/18 21:36:55.12
なんで?
今はまだ最低限の実装ってこと?

455:デフォルトの名無しさん
12/05/18 22:11:58.74
世代型のコピーGCェ・・・

456:デフォルトの名無しさん
12/05/18 22:52:06.53
こないだうぉるたんがGCまわりいじってたけど
世代型はまだまだ手付かずと思っていいのかな

457:デフォルトの名無しさん
12/05/19 01:41:44.18
GCなしオプションこい
GC使う機能は全て無効で

458:デフォルトの名無しさん
12/05/19 01:50:51.50
@nogc属性が追加されます

459:デフォルトの名無しさん
12/05/19 02:10:27.71
GC無しはD言語使う意味半減な気がするから、
もっと賢く軽くなって

460:デフォルトの名無しさん
12/05/19 03:17:55.19
組み込み用のクロスコンパイルくらいでしか使わない機能だな

461:デフォルトの名無しさん
12/05/19 03:40:57.58
関数のbodyのとこにelseって書けない?
こういうのしたい

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


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

}else{

}

462:デフォルトの名無しさん
12/05/19 03:52:35.59
static ifでどう?

463:デフォルトの名無しさん
12/05/19 08:39:24.59
とりあえず中身は遅くてもバグだらけでもいいから
インターフェイスを完璧に固めてくれ

464:デフォルトの名無しさん
12/05/19 12:42:00.76
>>462
そう思ってやってたんだけどなんかコンパイルエラーになるんだよなあ
URLリンク(ideone.com)

465:デフォルトの名無しさん
12/05/19 12:54:12.32
>>464
staticの付け忘れのようだ。
URLリンク(ideone.com)

466:デフォルトの名無しさん
12/05/19 12:58:13.43
うわああああああああああああああああああああ
そんなとこにもstatic・・・・orz

else ifってelseifじゃなくてelse{if}だったね、そうだね・・・勉強になった

467:デフォルトの名無しさん
12/05/19 17:24:04.84
Phobosに内部表現そのままでキャストする関数ってないのか?
*cast(type*)&varって書かないとだめ?

468:デフォルトの名無しさん
12/05/19 17:29:23.43
>>467
そんなことしてもメモリ配置は変わらないぞ。

型の変換をしたい →std.conv
同一の型か調べたい →is()式

469:デフォルトの名無しさん
12/05/19 18:04:09.56
>>467
もしかして、型情報だけ変えたい?
cast()でおk。

470:467
12/05/19 18:12:57.52
例えばuintの0x7fc00000をfloat.nanにしたいってこと
cast()だとnanにはならない
phobosに用意されてるのがあれば使いたいだけでポインタ通すままでもいいんだけど

471:デフォルトの名無しさん
12/05/19 18:59:27.07
>>470
ああ、これは確かに気持ち悪い。
URLリンク(ideone.com)

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

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:デフォルトの名無しさん
12/05/19 19:29:53.82
俺は*cast(T*)cast(void*)pとかやってるなあ
おまじない的にvoid*挟んでる

473:デフォルトの名無しさん
12/05/20 11:49:59.59
そろそろideoneもDのバージョン上げて欲しいなう

474:デフォルトの名無しさん
12/05/20 19:56:00.02
こういうのできないかな
a[0..10].func();→foreach(ref x; a[0..10])x.func();

475:デフォルトの名無しさん
12/05/20 21:15:25.28
UFCS的に不可

476:デフォルトの名無しさん
12/05/20 21:41:26.66
import std.algorithm;
a[0..10].map!(x=>x.func)();

これじゃダメなん?

477:デフォルトの名無しさん
12/05/20 21:49:13.62
>>475 やっぱり?
>>476 よいね

478:デフォルトの名無しさん
12/05/20 21:51:52.68
素直に書けばいいだけなのでは・・・
URLリンク(ideone.com)

479:デフォルトの名無しさん
12/05/20 23:25:37.69
ごめんね素直じゃなくって 夢の中なら言える

480:デフォルトの名無しさん
12/05/20 23:44:42.54
思考回路は ショート寸前
今すぐ 書きたいよ

481:デフォルトの名無しさん
12/05/20 23:47:08.69
ラムダ式って複文書けないのか・・・
実行されないと思ったら関数が返されてたっていうね
結果()=>{}()とか何の暗号だよ

482:デフォルトの名無しさん
12/05/20 23:49:44.66
それがλ式

483:デフォルトの名無しさん
12/05/21 00:20:37.03
(args){}のargsが空の時省略できる代償
Scalaに慣れてる人は戸惑いそう
それでなくとも文としての{}は単なるスコープになるし関数リテラルは=>デフォでいいんじゃ…と思ったけどコンパイル処理が

484:デフォルトの名無しさん
12/05/21 05:56:35.57
結論:
関数リテラルでよかった。

485:デフォルトの名無しさん
12/05/21 08:10:16.83
λ式って単に記述がシンプルに書けるってだけの存在なのかな。

486:デフォルトの名無しさん
12/05/21 08:23:06.75
","演算子多用してこうぜ

487:デフォルトの名無しさん
12/05/21 11:04:29.70
カンマ演算子は滅びるべき
()なし関数リテラルも滅びるべき

ラムダは言語の機能・特徴を一言で表せる点で有意義

488:デフォルトの名無しさん
12/05/21 22:13:00.95
プールしたメモリを使用するnewを提供するテンプレートクラスください

489:デフォルトの名無しさん
12/05/22 07:19:51.11
再利用の基準とかあるんだし
自分で作れよ

490:デフォルトの名無しさん
12/05/22 16:19:22.94
条件コンパイルの version識別子を複数一括で変えたくなったとき
もうちっと気の利いた手段がほしいな

version -> ファイルをまたぐ -> static if + enum
-> 共通ヘッダにまとめて public import -> カコワルイ

491:デフォルトの名無しさん
12/05/23 15:05:06.10
int型数個のみ入ったshared構造体から値コピーしてsharedを外すにはどうすればいいんですかね

492:デフォルトの名無しさん
12/05/23 15:23:30.65
>>491
URLリンク(ideone.com)

493:デフォルトの名無しさん
12/05/23 15:27:01.76
S d = cast()s;

ideoneは古過ぎて検証目的には使えない


494:デフォルトの名無しさん
12/05/23 15:46:14.06
公式サイトの和訳も、すっかり古くなってきてるなぁ・・・

495:片山博文MZボット ◆0lBZNi.Q7evd
12/05/24 11:59:45.98
D言語をインストールする
URLリンク(katahiromz.web.fc2.com)

D言語ソースにShift_JISを埋め込む
URLリンク(katahiromz.web.fc2.com)

496:デフォルトの名無しさん
12/05/24 12:10:12.52
まさか今になってD1の新規記事を書かれるとは

497:片山博文MZボット ◆0lBZNi.Q7evd
12/05/24 13:50:22.41
DのWin32 APIのフルサポートをやっちゃうぞぉ! 乞うご期待。

498:デフォルトの名無しさん
12/05/24 20:04:21.59
>>497
public domainで既にあるしなんで今更
しかもAPI直叩きなんてポインタの嵐でDの良さ半減しちゃう
どうせならDのサポートするOS全部サポートするGUIライブラリにしてよ

499:デフォルトの名無しさん
12/05/24 20:42:58.04
まじでなんでD1

500:デフォルトの名無しさん
12/05/24 21:08:57.23
我々の界隈ではD1を選択することを逃げと呼ぶ

501:デフォルトの名無しさん
12/05/24 21:10:49.58
新しいGUIライブラリなんてもういらない
どうせやるなら既存のものを他のOSに対応させたり機能を洗練させたりすることに力を注いで

502:デフォルトの名無しさん
12/05/24 22:04:26.39
DWTはいいぞぉ、元がSWTで使い倒されてるだけあって機能不足だけはありえない


503:デフォルトの名無しさん
12/05/25 12:38:59.63
DWT をWindows で使う時ってどうなの?
ユーザー側でのランタイムのインストールとか
DLLやバイナリが水ぶくれになるとかがなければ使ってみてもいいけど
よくわからんw

気にしなくていいのかな

504:デフォルトの名無しさん
12/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.
URLリンク(www.dsource.org)
URLリンク(www.dsource.org)
URLリンク(www.dsource.org)

505:デフォルトの名無しさん
12/05/25 12:56:56.36
wxD のがいいんじゃない?

506:デフォルトの名無しさん
12/05/25 13:23:15.20
UPX使えとか投げやりな

507:デフォルトの名無しさん
12/05/25 13:43:58.15
>>504
ありがと
サイズの小さいやつを見かけて もしやと思ったけど残念

>>505
更新されてるのん?

508:デフォルトの名無しさん
12/05/25 15:13:04.57
immutable(byte)[] bytestring = ['a','b','c'];
string text = bytestring.to!string;
writeln(text);
writeln(text.length);


509:デフォルトの名無しさん
12/05/25 15:23:01.43
DWTはD2へのインストール法がわからん。

510:デフォルトの名無しさん
12/05/25 20:14:28.73
>>509
D1と同じやり方で使える
んだけど、実はsubmoduleが最新になってないことがあるので
最新のD2で使うにはpullかけて更新しなきゃいけなかったりする

git clone URLリンク(github.com)
cd dwt
git submodule init
git submodule update
git submodule foreach git pull origin master  <- 全submoduleのpull
rake base swt


wxDはTreeCtrlがまともに動かなかったのは直ってるのかなぁ

511:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/05/25 22:13:25.07
2.059タグからstd.loaderを持って来たけど、
core.thread.Thread.sleepのdepricatedで止まった。
やはり向いてないのであきらめる。

513:デフォルトの名無しさん
12/05/25 22:34:50.53
>>511
linuxは手出してないわ…すまぬ
たぶん2.059の崩壊的変更で死んでると思う

514:デフォルトの名無しさん
12/05/25 22:54:10.77
>>510
お礼忘れてた。とんくす。

>>513
DはWin率が高い気がするな。

515:デフォルトの名無しさん
12/05/25 23:25:45.42
メリットないからな

516:デフォルトの名無しさん
12/05/25 23:56:30.22
linuxの場合はそれこそGtkDとかが相性良さそうな気がするな
Windowsで使うとDLLだらけになって死ぬ

517:デフォルトの名無しさん
12/05/26 00:36:50.00
GtkDはtypedefをaliasに直す作業がいる

518:デフォルトの名無しさん
12/05/26 01:01:10.42
class A{}
class B : A{}

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

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



519:デフォルトの名無しさん
12/05/26 01:07:29.50
A a;
if (なんか分岐)
  a = new B;
else
  a = new C;
こうなると「型」を得るのは無理。
実行時型情報ならclassinfoプロパティで取れる
writeln(a.classinfo);


520:デフォルトの名無しさん
12/05/26 01:22:38.19
可能性のある型全部にcastしてみるとか

521:デフォルトの名無しさん
12/05/26 14:53:36.76
classinfoどうもです

522:デフォルトの名無しさん
12/05/26 16:50:46.09
>>511
Ubuntu10でやってみたけどstd.loaderがなんとかとは言われなかった
何か別の問題があるのかなぁ

以前はlinuxの方メンテしてくれてた人がいたんで当て込んでたんだけど動きない…
とりあえず動くようにはしてpull request出しときました

523:デフォルトの名無しさん
12/05/26 16:54:13.60
あれ、というかArch版Phobosにはstd.loader無いの?

524:デフォルトの名無しさん
12/05/26 17:23:36.68
>>522
調べたら2.059以降に削除。かなり昔にdepricatedが出てる機能。
ただ2.059で入れ直しても別のdepricatedエラーで無理だったからメンテナが居ないっぽい。

525:デフォルトの名無しさん
12/05/26 17:39:56.23
するとphobosは標準で動的ロードができないのか
tangoの時代来るな

526:デフォルトの名無しさん
12/05/26 18:25:00.08
tangoはもう眠らせてやってくれ

527:デフォルトの名無しさん
12/05/27 00:29:57.33
というかいい加減眠ってくれ

528:デフォルトの名無しさん
12/05/27 17:31:27.41
これの処理結果はどうなる?
assert([] == null);
assert("" == null);
assert([] is null);
assert("" is null);


529:デフォルトの名無しさん
12/05/27 18:40:21.65
1.空配列はnull
2.文字列比較演算子オーバーライドでnullと判断される?
3.空配列はnull
4.""は'\0'が末尾に付くのでnullじゃない

530:デフォルトの名無しさん
12/05/27 19:45:50.37
Dの空文字列は[]じゃないの?どちらにしてもemptyの使用を推奨

531:デフォルトの名無しさん
12/05/27 19:49:09.79
""は長さは0だけど、C(ゼロ終端)用に、その奥にヌル文字が付いてる。ただしリテラルに限る

532:デフォルトの名無しさん
12/05/27 20:06:16.29
コンパイルエラー
false
コンパイルエラー
false

でw 適当ww

533:デフォルトの名無しさん
12/05/27 20:41:44.70
バグくさいけど
知っておかないとそのうち痛い目に遭う

534:デフォルトの名無しさん
12/05/27 22:06:59.07
仕様通りじゃね?
俺は不思議には思わん

535:デフォルトの名無しさん
12/05/27 23:06:54.64
true
true
true
false -- assertion error

2番目が false あるいはコンパイルエラーなら納得できるんだが
暗黙変換でもしてるのか?

536:デフォルトの名無しさん
12/05/27 23:11:05.81
配列の==比較は
1. 長さをチェックして異なればfalse
2. 各要素foreachで、==演算子がfalseならfalse
3. trueを返す
2番は両方の要素数が0ならそもそも行われないので
falseを返す要素が無いのでtrue

537:デフォルトの名無しさん
12/05/27 23:15:51.26
公式の等値式と同一性式を参照
== nullはコンパイルエラーで弾かれてほしい

538:デフォルトの名無しさん
12/05/29 22:12:53.71
COMと相性悪いのか知らんがダイアログが開いた途端落ちるのは何でだぜ
URLリンク(ideone.com)

539:デフォルトの名無しさん
12/05/29 22:18:45.31
>>538
俺もwin32API使うときにそうなったけど、何が原因だったんだっけなぁ。
ポインタ周りだったかなぁ。

540:デフォルトの名無しさん
12/05/29 22:45:37.79
>>538
CoCreateInstanceが成功してるならIFileOpenDialogの定義が間違ってるとか?

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

COMはいろいろ使ったけど困ったことないなあ

541:538
12/05/29 23:10:18.59
GetOpenFileNameでも同じ結果のようだ
ただ、フック掛けると古いスタイルのダイアログになるんだがそのときは成功する

>>540
宣言は間違ってないし、C++でほぼ同じ感じでmainから呼び出すと成功する

542:デフォルトの名無しさん
12/05/29 23:17:06.21
もしかしてエラー6BA?

543:デフォルトの名無しさん
12/05/30 08:03:06.73
>>538
勘で答えるけどIFileOpenDialog* dlg;ではなくて?もしくはcast(void*)か

544:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 08:28:54.84
Segmentation faultが発生する。なぜだか分からん。教えてくだされよ。
URLリンク(codepad.org)

あと、Dで64ビットプログラムは作れますか?

545:デフォルトの名無しさん
12/05/30 08:37:34.97
64bitコードを吐けるDを実装したら作れるだろ

546:538
12/05/30 10:57:35.81
>>542
もうちょっとkwsk

>>543
Dではinterfaceはclass同様ポインタなんだ
そもそもそこの宣言が間違えてたらダイアログを開くことすら出来ない(Access Violationでね)
問題なのはダイアログが表示されてから落ちることなんだよね

547:デフォルトの名無しさん
12/05/30 12:07:34.51
>>546
詳しくは忘れたけど

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

前者はダイアログが表示されてから、後者はフォーカスを持ったら
値が返ってくる感じになってる

548:デフォルトの名無しさん
12/05/30 12:36:34.07
>>544
プログラムが終了した時にデストラクタが呼ばれるけど、その時には標準出力が閉じてるから。
内部のオブジェクトがすぐに解放されないのは、その時点で本当に使われてないのか判断できないから。

あと、適当にリファクタリングしてみたw
重複コードがどうにかならないか検討中・・・
URLリンク(codepad.org)

549:デフォルトの名無しさん
12/05/30 12:39:20.26
>>548追記
型比較するだけなら、.nameいらないみたい。

550:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 13:08:07.27
>>548-549 有難うございます。GCってあまり賢くないのですね。。。

551:デフォルトの名無しさん
12/05/30 13:11:34.91
>>550
いやいや。
単純に内部のオブジェクトが別の場所で参照されてる可能性を考えてるだけ。

552:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 13:43:28.67
RbArrayの中身がうまく解放されるようにするにはどうすればいいですか?

553:デフォルトの名無しさん
12/05/30 14:10:52.74
>>552
単純な方法は、RbArrayのデストラクタで、内部のオブジェクトを明示的にdeleteする。
ただし、親のRbArrarも明示的にdeleteされる必要がある制約が付く。

554:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 14:34:53.00
これってバグかなあ。フォーラムで報告した方がいいかなあ。

555:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 14:47:49.93
報告したよ。
URLリンク(forum.dlang.org)

556:デフォルトの名無しさん
12/05/30 15:40:17.11
プログラム終了時のデストラクタでオブジェクトの参照をするのは
もともと正しく動かないと言われているよ

557:デフォルトの名無しさん
12/05/30 15:52:26.52
さらにリファクタリング。
と、D1/D2両対応する試み。(中途半端w)
URLリンク(codepad.org)

・・・結構大変だったの!w

558:デフォルトの名無しさん
12/05/30 15:56:03.65
んー。不具合なのかな。
リソース持つ物はそういうもんだと思ってた。

559:デフォルトの名無しさん
12/05/30 16:06:29.44
ところがドッコイ、仕様です!

URLリンク(www.kmonos.net)
GC が参照されなくなったオブジェクトを必ず解放するという保証はありません。
さらに、 GC がデストラクタを呼び出す順番も保証されません。
これはつまり、 GC管理下にあるオブジェクトへの参照をメンバとして持つオブジェクトのデストラクタを ガベージコレクタが呼び出すときには、それらの参照は既に無効となっている可能性があるということです。
従って、 デストラクタからはメンバオブジェクトを参照できません。
この規則は、 autoオブジェクトや DeleteExpressionで削除されるオブジェクト (GCが自動で解放することはないので、参照は必ず有効)には当てはまりません。

560:デフォルトの名無しさん
12/05/30 16:22:05.48
>>559って、一般的なGCのあるオブジェクト指向言語だと当たり前だと思ってた。
Disposeせな。

561:デフォルトの名無しさん
12/05/30 16:26:35.12
当たり前かな?
GCも作成順と逆順を保証してくれるのは結構ある気がする。

562:デフォルトの名無しさん
12/05/30 16:34:39.16
>>561
賢いのもあるんだなぁ
でもそうすると、複数オブジェクトの中で参照が循環しちゃうと、誰にも開放できないのが出来ちゃうんじゃないか?
親が消えれば必ず子が消えなければいけないというのも、不便かも。

563:デフォルトの名無しさん
12/05/30 16:37:40.70
>>562
参照カウンタじゃあるまいし。

564:デフォルトの名無しさん
12/05/30 17:20:23.19
でもそれでも循環参照が発生すれば結局segfaultも発生すると思うよ

565:デフォルトの名無しさん
12/05/30 19:03:53.80
日本語訳が更新されたっぽいぞ!
URLリンク(www.kmonos.net)

566:デフォルトの名無しさん
12/05/30 19:34:34.94
「Dがもう一個」の名言が消されてるからむむ、と思って概要を見に行ったら
あのマスコットはまだ頑張っていて絶望した

567:デフォルトの名無しさん
12/05/30 19:42:16.98
>>555
バグじゃないよGC持ってる系の言語初めて?

568:デフォルトの名無しさん
12/05/30 20:25:02.27
今日、D1の仕様和訳が、誤訳ってレベルじゃ無いってくらい、間違いだらけなのに気づいた。
まあ、D1だけどねw

569:デフォルトの名無しさん
12/05/30 20:49:17.52
暇にかまけて作ってしまった。後悔はしていない。
URLリンク(www.dotup.org)

っていうか、オリジナルのテイストって結構難しいな。

570:デフォルトの名無しさん
12/05/30 20:50:42.09
>>569
ああ・・・次はアクションゲーム部分だ・・・

571:デフォルトの名無しさん
12/05/30 20:58:10.10
え?アクション?えぇ??ちょっ・・・。Orz

うーん。D自体を触ったのが大分前なんだよなぁ。うーん。
ウィンドウが出て画像が貼れるライブラリってどれなんだろう。
SDLはよくわからないから普通のGUIキットがいいなー。速度、度返しで!

572:デフォルトの名無しさん
12/05/30 21:08:27.31
AliasThisテンプレート。
D1でD2のAlias thisの再現をする試み。
全然洗練されてないけど出しちゃうww
URLリンク(codepad.org)

573:デフォルトの名無しさん
12/05/30 21:12:01.39
アクションゲーム作るなら普通のGUIツールキットは使いづらいんじゃないかなぁ
それこそSDLとかのほうがやりやすい

574:デフォルトの名無しさん
12/05/30 22:00:21.15
せっかくだし、共同制作でもしようぜ!
とりあえず仕様決めよう。
URLリンク(sourceforge.jp)

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

あと、>>569とは別人です。

575:デフォルトの名無しさん
12/05/30 22:25:45.01
>>569の画像って使ってもいいのかなー。

576:デフォルトの名無しさん
12/05/30 22:28:09.04
dxlib4dとか最近あるよ
簡単だし、いいんじゃないかな

577:569
12/05/31 02:41:56.42
>>573
うーん。そうですかねー。うーん。

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

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

>>576
ほえー。それは楽そうですね~。

578:577
12/05/31 02:57:20.55
ファイルで上げるの面倒なので、いでおんに投げておきました。
URLリンク(ideone.com)

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

ライセンスは面倒なので以下を適応します。
URLリンク(www.kmonos.net)

そこの作者の人の成果物にはお世話になったので自分も真似てみるてすと。
何が出るかな!何が出るかな!!

579:片山博文MZボット ◆0lBZNi.Q7evd
12/05/31 10:59:08.77
this(int i) { ... }
this(long l) { ... }
this(double d) { ... }
このようなコンストラクタの呼び出しのあいまいさを回避する方法ありますか?

580:デフォルトの名無しさん
12/05/31 12:26:32.97
>>577-578
まさかのハードコードww
まあ、実用上は問題ない。

画像が欲しかったのは、プロジェクトロゴに使いたかったからで、実際のゲームに使われるかどうかは知らないw

581:デフォルトの名無しさん
12/05/31 12:34:39.37
>>579
あいまいさの意味はわからないが、

呼び出し側で、型指定すればいい。
引数に、
cast(int)
cast(long)
cast(double) をつける。


582:片山博文MZボット ◆0lBZNi.Q7evd
12/05/31 12:44:29.60
>>581 有難う御座います。

583:538
12/05/31 14:06:37.21
バカな・・・
-L/SUBSYSTEM:WINDOWS:4.0で直った・・・だと・・・
M$は俺に謝罪しろ!今すぐにだ!

584:デフォルトの名無しさん
12/05/31 14:23:37.51
>>583
defファイル渡してなかったってオチ?w

585:デフォルトの名無しさん
12/05/31 14:35:25.51
>>583
4.0ってだいぶ古いぜ?
指定するなら少なくとも5.0(Windows 2000)にしたいし、それで動かないならAPIの宣言が古いんだろう。

586:538
12/05/31 14:51:10.07
>>584
VisualDに任せっきりなのでdefファイルてのは分からん

>>585
どっかで見たのが4.0だったんで特に意味は無い
でもありがとう5.0かそれ以上にしとく

587:デフォルトの名無しさん
12/05/31 18:52:23.64
>>579
あいまいになりようがなくね?

588:デフォルトの名無しさん
12/05/31 20:23:19.10
>>580
あ、それなら使ってもいいですよ。
あと、一般的な汎用の大の字のモデルを作るのはそんな難しくは無いですね。

589:デフォルトの名無しさん
12/05/31 20:44:12.44
>>580
あ、そうそう。ハードコードじゃないです。
メタセコイアっていうモデリングソフトがあるんですけど、それのLE板で作りました。
URLリンク(www.metaseq.net)

とてーもいいソフトなのでムラムラしたらためしてみるといいと思います。
俺は、シェア版欲しいんだけど、迷ってるところです。

590:デフォルトの名無しさん
12/05/31 22:44:37.01
import std.net.curl;すると隣家に怒られるんだけどもしかして外部のライブラリを拾ってこないとだめ?
環境はwindowsです

591:デフォルトの名無しさん
12/06/01 02:09:34.61
やってみたけどバイナリ拾ってきて自分でimplibしたら一応使えた

592:デフォルトの名無しさん
12/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
12/06/01 16:24:38.48
D1とD2を両方インストールする
URLリンク(katahiromz.web.fc2.com)

594:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 16:28:02.53
AliasThis(修正済み)
URLリンク(codepad.org)

595:デフォルトの名無しさん
12/06/01 16:43:10.26
dlang.orgもdigitammars.comもどうしちゃったん?

596:デフォルトの名無しさん
12/06/01 16:53:31.72
>>594
おお、修正したか!

597:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:01:03.40
opIn, opIn_rがD1で動作しないみたいだが。。。

598:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:19:12.65
>>595 Digital Daemonというタイトルで戦闘機に乗った赤い悪魔が表示される。

599:デフォルトの名無しさん
12/06/01 17:19:48.95
>>597
あー、そういえばin演算子だけ、戻りの型が元の型と違うんだった。
is(Base T: T[])なら、T opIn(Base)だw
あとopInAssign()もいらなかったw

600:デフォルトの名無しさん
12/06/01 17:20:50.46
いや、T* opIn(Base)か?
どっちかなw

601:デフォルトの名無しさん
12/06/01 17:25:13.48
ちげえ、T* opIn(T)かw
もう、分けわかんなくなってきた。

602:デフォルトの名無しさん
12/06/01 17:27:05.88
と思ったら、もう修正してあるのか・・・ すまん。

603:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:33:08.27
opAssignを削った。
URLリンク(codepad.org)

604:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:36:35.73
>>603 ごめん、間違えた。

605:デフォルトの名無しさん
12/06/01 17:40:38.89
>>603
ん? よく見たら戻りの型がポインタじゃない?

606:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:45:05.82
>>594が正しくて、>>603が間違いです。

607:デフォルトの名無しさん
12/06/01 18:57:45.04
超オッケー!
URLリンク(codepad.org)

608:デフォルトの名無しさん
12/06/01 19:37:44.19
なんで今さらD1なんかで盛り上がってんだ?

609:デフォルトの名無しさん
12/06/01 19:38:20.51
陰謀を感じる

610:デフォルトの名無しさん
12/06/01 19:55:04.89
D1が完全終了するのは今年末だっけ?
半年しかないぞ

611:デフォルトの名無しさん
12/06/01 21:37:04.62
いつも終わったところで車輪の再発明するそういう趣味なんだよほっといてやれ

612:デフォルトの名無しさん
12/06/02 00:37:47.20
>>569 >>574
メタセコイア用のローダ書いたのでよかったらお使いやがれください。
URLリンク(dl.dropbox.com)

613:デフォルトの名無しさん
12/06/02 01:08:33.74
>>612
超いい仕事した

614:デフォルトの名無しさん
12/06/02 01:37:55.66
>>612
おー、まわる~。

615:デフォルトの名無しさん
12/06/02 02:05:51.07
>>612
すげー。
俺もパースしようと何度か挑戦したけど、いつもエネルギー切れて中途半端になってしまう。
めちゃくちゃ感動した。

616:デフォルトの名無しさん
12/06/02 05:50:05.78
コードがちゃんとDっぽい
つーかこれに地味に感動した→ "Dさん.mqo".read.to!string

俺もmqoパーサ書いたけどmqoってsjisなんだよなあ
readLineで読んでるんだけどファイル中に全角文字が来ると落ちる・・・

617:デフォルトの名無しさん
12/06/02 08:23:00.41
immutableなデータをdeleteするなんてことが許されていいんですか!?

618:デフォルトの名無しさん
12/06/02 18:19:43.63
>>612
sworks.compo.*も自作?

619:デフォルトの名無しさん
12/06/03 03:18:52.09
>>613-616 あざーーす
>>616 なんちゃってsjis対応しました。
URLリンク(dl.dropbox.com)
utf8と32以外の文字コードなんて滅びてしまえばいいのに

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

で、次は動かしたいと思うのが人情なんだが、アニメーションを記述するのでメジャーなのってなにがあるんだろう?


620:デフォルトの名無しさん
12/06/03 04:21:43.03
3Dの一般的なモーションデータならbvhらしいけど、メタセコ特化ならmikotoやMMDの形式はどうだろう

621:デフォルトの名無しさん
12/06/03 12:38:45.42
sjis対応乙したー
使う場合ライセンスとかどう扱えば良い?

622:デフォルトの名無しさん
12/06/03 14:14:04.32
socketstreamのavailableが常に0で来る・・・

623:デフォルトの名無しさん
12/06/03 16:01:59.28
std.streamのreadLineはseekableなstreamにしか"\r\n"改行対応してないせいで
seekableではないstreamであるsocketstreamを使ってHTTPやろうとしても
http応答のヘッダ最後の空行を読みきれなくて(\rだけ読んで満足してそのあとの\nを読まない)
本体データの先頭に"\n"が混入するんだけどスマートな回避策ないですか?

624:デフォルトの名無しさん
12/06/03 16:06:04.84
UTF16を可変長にしたやつが悪い
CJKの要求全部まとめて突っぱねればよかったんや


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch