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


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

D言語 Part30



1 名前:デフォルトの名無しさん mailto:sage [2012/07/31(火) 00:05:43.45 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。

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

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

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

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

161 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 11:17:18.65 ]
Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAxaTxkZ16Associativ
eArray6valuesMFNdZAxk
Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAxaTxkZ16Associativ
eArray6valuesMFNdZAxk

リンク時にこういうエラーが出ます。
おそらくisAssociativeArrayを使っているからだと思いますが、どうすればいいですか?

162 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 13:14:26.86 ]
対象の xxxx.lib をコンパイル時に参照するように指定してあげないといけないんじゃないの

163 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 13:19:36.44 ]
連想配列周りのバグが直ってないのがいくつかあった気がする
d.puremagic.com/issues/show_bug.cgi?id=5950

コマンドラインでソースファイル名を渡す順序を入れ替えると
出なくなったりとか変なバグがある

164 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:21:47.56 ]
>>162
isAssociativeArrayはD言語標準なので困ったところなのです。

>>163
コンパイラのバグだったか・・・。
ソースファイルを渡す順序の入れ替え・・・地味な作業になりそうです。

165 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:33:45.50 ]
まさかisAssociativeArrayを関数呼び出ししてない?

166 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 18:02:24.16 ]
>>165
static if (isAssociativeArray!(Hoge))
こんな感じで使ってます。

167 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 18:19:15.01 ]
>>161
デマングリングだけしてみた。これに見覚えは?

@property const(uint)[] object.AssociativeArray!(const(char)[], const(uint)).AssociativeArray.values()

168 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 18:56:17.52 ]
演算子オーバーロードみたいにコンパイラが内部で書き換えるやつじゃね

169 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 19:48:23.16 ]
それD組み込みの連想配列の実装コードな気がする・・



170 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 19:53:45.79 ]
なんかkeys使うとリンクに失敗することがあったような

171 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 20:42:53.43 ]
>>167
直接、そういったテンプレートを呼び出した覚えはないです。

>>168-170
やはりコンパイラのバグか・・・。

172 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 21:26:10.67 ]
コンパイラはいつも夢を与えてくれますが
同時にバグも残していくのです

173 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 21:59:34.29 ]
つまり夢いっぱいってことさ。

174 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 22:04:15.27 ]
Open your Passion!!

175 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 22:29:42.05 ]
dmdのバグ
price less

176 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 23:21:32.66 ]
夢だけじゃ腹は膨れないんだよッ

177 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 23:35:06.98 ]
だったらケーキを食べればいいじゃない

178 名前:161 mailto:sage [2012/08/18(土) 09:46:56.35 ]
一応報告ですけど、コンパイラをdmd2.059からdmd2.054にしたらビルドできました(他のverは試してない)。

179 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 09:57:37.82 ]
最新版を試してない・・・だと・・・



180 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 10:23:58.60 ]
HEADじゃない…だと…?

181 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 10:42:08.53 ]
dmd -libのときって.libファイル指定できないんですか?

ライブラリソースのlib.dの中ではsc.iniで指定したパスにあるxxx.libの関数を使用しています。
dmd -lib lib.d xxx.lib
⇒Error: Error reading file 'xxx.lib'


もしかしてexeソースのsrc.dで直接xxx.libを使っていなくて
exeを作る場合は依存関係のあるすべての.libをdmdに並べないといけないのでしょうか

dmd src.d lib.lib xxx.lib

182 名前:161 mailto:sage [2012/08/18(土) 23:32:43.12 ]
dmd2.060が出てたの気づいてなかった・・・。

183 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 21:40:24.95 ]
ttp://dusers.dip.jp/modules/forum/index.php?topic_id=119#post_id442
薄い本がでるのか

184 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 22:31:12.36 ]
完売したらしいね

185 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 08:36:23.64 ]
おっくれてるぅー

186 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 17:23:50.31 ]
あれだけ扱い難いC/C++の処理系のバグの少なさには恐れ入ったもんだが
Dはどうしてだめなんだ。

187 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 17:25:52.37 ]
仕様が決まってないから

188 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 17:37:57.10 ]
こればかは
どうしようもない

189 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 19:47:24.59 ]
dlang.org/bugstats.php
ずいぶん改善されてる実感はあるんだけど
せめて、Criticalが1桁になればなあ・・




190 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 19:49:25.17 ]
ウォルターの存在自体がバグ

191 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 21:30:22.40 ]
>>189
改善されてないでしょ…
バグ曲線の見方は、newが少なくならないと安定してきたとはみなされないし。

192 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 22:56:54.33 ]
class C{...}
class D : C{...}

C d = new D;

dからDを得る方法ありますか?
typeof(d)だとCになってしまう。

193 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 23:23:48.46 ]
d.typeof

194 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 12:09:18.20 ]
d.toString

195 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/23(木) 16:15:36.24 ]
>>82 できました。

196 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/23(木) 16:52:33.59 ]
遅くなってごめんなさ

197 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 16:59:14.16 ]
あんなマンパワーの居る作業を一人でやったのか…
お疲れさん。

198 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 19:40:34.48 ]
>>196
Makefile
46 : ## DEBUG OR RELEASE?
逆じゃね?

199 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 21:10:34.89 ]
## DEBUG OR RELEASE?
DFLAGS=-inline -O -release -w $(DEFS) # for Debug (default)
#DFLAGS=-debug -gc -unittest -w $(DEFS) # for Release

これは逆やね



200 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 22:15:41.39 ]
C言語のライブラリから
char* hoge();
を文字列として引っ張ってきたいのですが、そのままだと文字のポインタのような感じになってるみたいです。
文字列のように持ってくる何かいい方法は無いでしょうか

201 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 22:53:42.86 ]
D言語だって文字の配列だよ

202 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 22:56:05.46 ]
hoge().to!string();

203 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 22:56:06.23 ]
ポインタから勉強しなおしてto!stringしろ

204 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 22:57:25.06 ]
メモリリークの予感しかしない

205 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:00:16.96 ]
>>200
char* p = hoge();
string s = p[0 .. strlen(p)].idup;
というのが一番簡単かな

Cライブラリで確保されたメモリは
GC管理下に無いからコピーした方が扱いやすいと思う
自分で管理出来るならidupしないでキャストしてもいいのかな

206 名前:205 mailto:sage [2012/08/24(金) 23:01:55.61 ]
あ、toで行けるのかスマン知らなかった
to賢いな

207 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:08:16.61 ]
>>200はポインタに対しての理解度があやしいので
その関数がmallocしてくるのかstaticな領域を返すのか確認した方がいいです

208 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:09:35.25 ]
>>206
isたんもかわいいお

209 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:22:48.60 ]
>>208
toro.2ch.net/test/read.cgi/tech/1320314325/



210 名前:200 mailto:sage [2012/08/24(金) 23:40:17.15 ]
hoge().to!string();
ですね。

関数内で作成した文字列は危険だから返すな!
予めメモリを確保した所から文字列としてchar*を返す分には問題ない。

とかそういう感じですかね?
ご指摘ありがとうございます。ちゃんと手直ししました。

色々とありがとうございます。

211 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:43:42.83 ]
要するにmallocしたらfreeしろってことだよ

212 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:47:41.56 ]
ぼくのアナルも排便した後は女の子に舐め取ってもらいたい!

213 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:49:28.53 ]
その後はすかさずベロチューか?
お前とはうまい酒が飲めそうだ

214 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:53:40.52 ]
ハードコアだな

215 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 23:56:57.30 ]
マゾしかいないのかと思ったらスカトロマニアも多いとは……。
趣味がが増えたよ! やったねたえちゃん!

216 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 01:04:46.58 ]
D言語のマスコットでエロゲ作ろう

217 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 01:06:23.59 ]
そこはマスコットと言わず高クオリティーで頼む

218 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 01:53:04.54 ]
ボコォ

219 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 13:24:47.03 ]
classインスタンスのアドレスを取るときって↓で良い?
あとこういうのってどこに仕様書いてありますか

C c = new C;
cast(void*)c



220 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 17:24:59.46 ]
ttp://www.kmonos.net/alang/d/class.html
> クラスオブジェクトは参照によってのみインスタンス化されます。

221 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 19:33:51.34 ]
ありがとうございます。
そこは見たのですが、その「参照」は何もラップされていないアドレスと考えて良いんですか?

222 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 20:11:51.25 ]
TypeInfo_Classがあるだろう。

223 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 20:33:19.69 ]
>>219それで合ってるよ

224 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 02:18:07.74 ]
&thisとかはスコープ外れた時に使えなくなるみたいなんだけど
どっかでポインタ用の変数を自動生成してるってこと?

225 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 02:27:41.88 ]
thisは変数だし、&thisは変数へのポインタなんだから当たり前だろ。

226 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 02:38:20.51 ]
ん?じゃあ外部で生成されたクラスのアドレスを
クラスの内部から取得する場合にはどうすればいいの?

クラスが生成されてる間に、アドレスの形で保持しておいて
スコープが外れても色々な所で使い回したいとかそういうケースなんだけど

227 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 03:03:57.14 ]
クラス内のthisも参照だけどそのへんわかってる?

228 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 04:01:17.55 ]
多分よく分かってません
thisは、Classへのアドレス?
&thisは、Classへのアドレスを記憶するために変数が用意される感じ?
とか、そんな感じで混乱してます

229 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 10:10:20.29 ]
thisはクラスのインスタンスを指す参照変数で、&thisはその参照を指すポインタを得る。
参照変数の内容にはポインタを含むから、&thisはポインタのポインタになるってわけ。



230 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 10:12:39.89 ]
s/ポインタ/アドレス/g

231 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 12:10:55.47 ]
>>226
そういう場合に>>219を使う。
thisからアドレスを得たいなら cast(void*)this でいい。

232 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 14:04:30.06 ]
基本的には>>219でいいけど、CがopCastを定義していると動かない
もうちょっとよいやり方はこちら

C c = new C;
void* p = *cast(void**)&c;


233 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 15:43:06.33 ]
Dのマスコット作ってる暇があるなら
ウォルタくんはこういうややこしい部分を図解してやればいいのになw

234 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 16:20:28.86 ]
ややこしいのか・・・?

235 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 16:53:50.45 ]
クラスのアドレスって何に使えるんだろう?

236 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 17:11:05.96 ]
memsetとかか。ガクブル。

237 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 17:50:18.80 ]
SetWindowLongしたりemplaceしたインスタンスをfreeするのに使ったり

238 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 00:00:18.60 ]
リンカが出す「Error 32: Data Outside Segment Bounds : _DATA」ってエラーはどんな意味なんだい
何をすれば解決するのかさっぱりで

239 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 03:18:43.15 ]
みんなのおかげで次のステップに移ることができたよ
ありがとう



240 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 07:03:55.03 ]
>>238
align絡みだと思う
こっちでは
align(1) struct S {...}
みたいなのがあると出た

struct S {align(1): ... }
なら問題無しみたい

241 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/27(月) 20:08:06.06 ]
Warning 178: .LIB pagesize exceeds 512

助けて! -L/PAGESIZE:1024を付けてもダメだった。

242 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/27(月) 20:37:29.03 ]
ライブラリが大きすぎるということか? でも二つに分けたくないな。

243 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 20:43:50.09 ]
単純な数値定数はconstではなくenumにすると、シンボルが出力されないからライブラリサイズが減るかも。

244 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 21:38:26.40 ]
OPTLINKを甘く見るな
吐いてるエラーメッセージが真実とは限らない

245 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:03:47.65 ]
2.060でalign属性がいかれちまってるんですが、
これはD言語erにとって大したことない感じなの?

246 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:18:38.10 ]
なに、ちょっとした崩壊的変更だ
一日ちょっと楽しめたぜ

247 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:53:42.34 ]
align(1)が変更つうかぶっ壊れてる気がするんですが、変更なの?

248 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 23:56:21.38 ]
struct S {align(1): ...}
でサイズが計算と合わない

249 名前:デフォルトの名無しさん [2012/08/28(火) 01:21:00.19 ]
d.puremagic.com/issues/show_bug.cgi?id=8377
うぉるたんが disastrous bug って言ってるヤツかな
緊急リリースが出るかと思ってたけど出ない



250 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 06:30:28.64 ]
こういう話を見るたびに思うんだけど
Dがつく単語をわざと選んでんのかな

251 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 10:10:20.94 ]
選んでるかまでは知らんが
破壊とか崩壊とか解体とか災厄とか絶望とか、
その手の単語はラテン語源のことが多いけど、
そっちで接頭辞 de- とか dis- とかがつく単語で表現されてるもんだからもともとDで始まる単語が多い

252 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 10:23:28.24 ]
destroy

253 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 11:39:10.70 ]
dildo

254 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 19:18:25.79 ]
dragonic change

255 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 20:15:31.49 ]
"D"にこれ程深い意味があったとは

256 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 20:46:15.28 ]
Dragon → Dlagn → D lang

257 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 21:06:46.87 ]
>>248
align(1) struct S{ align(1): ... }

258 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 21:25:16.15 ]
Dのあのマスコットはドラゴンなのか?

259 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 22:33:55.88 ]
Dの意思



260 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 03:17:30.61 ]
The D like a mascot is a Doughnut.
You can eat it everywhere.

261 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 04:09:05.33 ]
void main()
{
import std.stdio;
"hello, world".writeln();
}


> a.d(4): Error: undefined identifier 'writeln'

           ___   ━┓
         / ―  \  ┏┛
        /  (●)  \ヽ ・
       /   (⌒  (●) /
       /      ̄ヽ__) /
.    /´     ___/
    |        \
    |        |






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

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

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