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


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

D言語 Part29



1 名前:D1はオワコン [2012/02/20(月) 14:05:31.03 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。

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

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

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

■参考URL
dusers.dip.jp (D言語友の会)
prowiki.org/wiki4d/ (Wiki4D)
dsource.org/ (dsource)

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

332 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 06:03:59.12 ]
何その暗黙的明示キャスト

333 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 07:36:03.54 ]
= の右側に単独にある場合や
関数の引数に単独にある場合に使うのか

334 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 10:05:52.19 ]
そりゃ言語じゃなくてIDEの機能だべ

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

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

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

338 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 13:19:18.37 ]
IDEが必要なのは抽象化機能の不足

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

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



340 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 00:57:23.74 ]
pure nothrow @safe const とか長い修飾子ちゃんと付けてるひといるのか

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

342 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:24:19.29 ]
constとinとimmutableはつける
後は……

343 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 10:27:03.09 ]
autoがvarに変更にならないかな
Cのauto変数と意味が違うからどうも

344 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 11:41:02.15 ]
c++11と同じだから問題ない

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

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

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

348 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 13:34:36.07 ]
>>346
死んでるなぁ→どっこい生きてた→死んでるなぁ→どっこい生きてた→死んでる ←いまここ

349 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 13:49:30.91 ]
>>346
ソースのライセンスも明記されてないような・・・



350 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 15:46:17.03 ]
VisualD使え捗るぞ

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

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

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

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

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

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

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

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


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



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

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

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

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

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

367 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 11:37:01.30 ]
VisualD 0.3.32

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

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



370 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 00:08:48.17 ]
わざわざ入れるほどのものでもない
ほしければ自分で取り込めばイイ

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

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

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

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

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

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

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

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

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

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

379 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:50:30.52 ]
D2の構造体は複雑だなあ・・・
ideone.com/dUrpK

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



380 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:56:24.92 ]
もう少し詳しく。
ideone.com/M0QFD

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

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

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

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

384 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:22:34.43 ]
copy on writeとかの処理ミスってるぽい動きだなあ

385 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 16:40:05.29 ]
ビットコピーだけして終了してる感じなのだろうか

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

387 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 21:45:12.81 ]
検索したら出てきた

d.hatena.ne.jp/ottu/20090114/1231946126

388 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 21:52:33.17 ]
生のC用APIそのままでいいなら普通に使ってるよ

389 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:58:43.31 ]
Dを普通に使ってるのもすごいな・・・



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

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

392 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 01:47:58.64 ]
>>391
WindowsでUTFを使う

今も使えるかは知らない

393 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 02:30:24.25 ]
>>391
std.windows.charset.fromMBSz があるじゃなーぃ
ttp://dlang.org/phobos/std_windows_charset.html

394 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:29:56.48 ]
char*に突っ込む

395 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:42:46.79 ]
jcode.d

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

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

398 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:34:39.88 ]
逆にテンプレートがないと書けない。
C++もboostがないと書けない。

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



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

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

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

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

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

403 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:25:04.60 ]
C++のfriendとかどうやって移植すればいいんだ・・・

404 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:55:03.66 ]
普通に同じモジュールで

405 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 18:26:13.26 ]
最近あんまり触れてなかったからよくは知らないけど
BindingsプロジェクトのWindowsAPIとか使えるんじゃね?

408 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/05/10(木) 18:30:45.82 ]
>>407 サンクスヴェリーマッチョ

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



410 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 20:26:14.75 ]
>>409
1モジュールに全部詰め込んでしまえばいい。

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

412 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 20:34:58.13 ]
>>410
頭いいな!そうする

413 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 20:36:00.10 ]
publicでいいんじゃね?w

414 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 21:05:36.02 ]
ここまで作った。(なげやり)
ideone.com/4FCX6

415 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 21:44:12.04 ]
character

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

417 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 00:05:18.70 ]
実態は大差ないけどassumeUniqueの方がいいかもね

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

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



420 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 00:22:36.71 ]
心折れそう。(まだ途中)
ideone.com/MX7Lg

421 名前:386 mailto:sage [2012/05/11(金) 00:46:05.19 ]
>>387,388
遅くなったけどありがとう
程々にがんばってみるよ

422 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 01:32:04.42 ]
Linuxはiconv使えばいいかな

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

424 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 20:33:47.56 ]
SWIG でなんとかならんかな〜と思ったけど
情報が少なすぎて手も足も出ない

425 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 09:38:23.12 ]
std.stdio.って付けてもimportの省略とかはできませんよ
同じ名前の関数が別モジュールで複数ある場合に「どこの」関数であるかを明確にするために使います

427 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 12:19:28.09 ]
>>427
ただのバグです。static importが無視されるってのは大昔からある伝統的なバグ。
最近若干改善されたから >>425 が正しくエラーになるようになった。
ttp://d.puremagic.com/issues/show_bug.cgi?id=314

429 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 12:22:26.74 ]
ばぐっすかーなるほど



430 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 11:37:20.50 ]
>>27-29
en.wikipedia の TLS には書いてあるのを見つけた

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

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

433 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 23:17:16.99 ]
構造体newの犠牲者がまた一人

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

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

436 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 12:56:13.75 ]
iconvの使い方って、本当にこれでいいのだろうか・・・
ideone.com/3rQNj

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

438 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 08:14:42.31 ]
構造体をnewしたことないわw

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



440 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 10:07:56.85 ]
うちの会社のデータ処理アプリ
分析やら整形やら

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

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

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

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

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

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

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

448 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 20:44:38.62 ]
>>439
ttp://www.vector.co.jp/soft/winnt/util/se496559.html

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



450 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:51:23.73 ]
>>446
何があかんの?

451 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 07:44:25.00 ]
でかいんでしょう

452 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 07:59:19.46 ]
std.regexって今後小さくなるかな
GCとかも

453 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:58:34.30 ]
間違いなく大きくなりますね

454 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:36:55.12 ]
なんで?
今はまだ最低限の実装ってこと?

455 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 22:11:58.74 ]
世代型のコピーGCェ・・・

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

457 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 01:41:44.18 ]
GCなしオプションこい
GC使う機能は全て無効で

458 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 01:50:51.50 ]
@nogc属性が追加されます

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



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

461 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 03:52:35.59 ]
static ifでどう?

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

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

465 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:54:12.32 ]
>>464
staticの付け忘れのようだ。
ideone.com/YgZpQ

466 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:58:13.43 ]
うわああああああああああああああああああああ
そんなとこにもstatic・・・・orz

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

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

468 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 17:29:23.43 ]
>>467
そんなことしてもメモリ配置は変わらないぞ。

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

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



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

471 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 18:59:27.07 ]
>>470
ああ、これは確かに気持ち悪い。
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 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 19:29:53.82 ]
俺は*cast(T*)cast(void*)pとかやってるなあ
おまじない的にvoid*挟んでる

473 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 11:49:59.59 ]
そろそろideoneもDのバージョン上げて欲しいなう

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

475 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:15:25.28 ]
UFCS的に不可

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

これじゃダメなん?

477 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:49:13.62 ]
>>475 やっぱり?
>>476 よいね

478 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:51:52.68 ]
素直に書けばいいだけなのでは・・・
ideone.com/a2yka

479 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 23:25:37.69 ]
ごめんね素直じゃなくって 夢の中なら言える



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

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

482 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 23:49:44.66 ]
それがλ式

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

484 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 05:56:35.57 ]
結論:
関数リテラルでよかった。

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

486 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 08:23:06.75 ]
","演算子多用してこうぜ

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

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

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

489 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 07:19:51.11 ]
再利用の基準とかあるんだし
自分で作れよ



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

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

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

492 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 15:23:30.65 ]
>>491
ideone.com/xZN89

493 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 15:27:01.76 ]
S d = cast()s;

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


494 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 15:46:14.06 ]
公式サイトの和訳も、すっかり古くなってきてるなぁ・・・

495 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/05/24(木) 11:59:45.98 ]
D言語をインストールする
katahiromz.web.fc2.com/d/install.html

D言語ソースにShift_JISを埋め込む
katahiromz.web.fc2.com/d/mbconvd.html

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

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

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

499 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 20:42:58.04 ]
まじでなんでD1



500 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 21:08:57.23 ]
我々の界隈ではD1を選択することを逃げと呼ぶ

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

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


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

気にしなくていいのかな

504 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 12:56:56.36 ]
wxD のがいいんじゃない?

506 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 13:23:15.20 ]
UPX使えとか投げやりな

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

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

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


509 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 15:23:01.43 ]
DWTはD2へのインストール法がわからん。



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

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

514 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 22:54:10.77 ]
>>510
お礼忘れてた。とんくす。

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

515 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 23:25:45.42 ]
メリットないからな

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

517 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 00:36:50.00 ]
GtkDはtypedefをaliasに直す作業がいる

518 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 01:01:10.42 ]
class A{}
class B : A{}

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

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



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




520 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 01:22:38.19 ]
可能性のある型全部にcastしてみるとか

521 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 14:53:36.76 ]
classinfoどうもです

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

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

523 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 16:54:13.60 ]
あれ、というかArch版Phobosにはstd.loader無いの?

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

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

526 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 18:25:00.08 ]
tangoはもう眠らせてやってくれ

527 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 00:29:57.33 ]
というかいい加減眠ってくれ

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


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



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

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

532 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 20:06:16.29 ]
コンパイルエラー
false
コンパイルエラー
false

でw 適当ww

533 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 20:41:44.70 ]
バグくさいけど
知っておかないとそのうち痛い目に遭う

534 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 22:06:59.07 ]
仕様通りじゃね?
俺は不思議には思わん

535 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 23:06:54.64 ]
true
true
true
false -- assertion error

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

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

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

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

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



540 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 22:45:37.79 ]
>>538
CoCreateInstanceが成功してるならIFileOpenDialogの定義が間違ってるとか?

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

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

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

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

542 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 23:17:06.21 ]
もしかしてエラー6BA?

543 名前:デフォルトの名無しさん mailto:sage [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が発生する。なぜだか分からん。教えてくだされよ。
codepad.org/jrhvKyNv

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

545 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 08:37:34.97 ]
64bitコードを吐けるDを実装したら作れるだろ

546 名前:538 mailto:sage [2012/05/30(水) 10:57:35.81 ]
>>542
もうちょっとkwsk

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

547 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 12:07:34.51 ]
>>546
詳しくは忘れたけど

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

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

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

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

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



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

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

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

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

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

555 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/05/30(水) 14:47:49.93 ]
報告したよ。
forum.dlang.org/thread/vndvjforbvpnhhgilixi@forum.dlang.org#post-vndvjforbvpnhhgilixi:40forum.dlang.org

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

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

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

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

559 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 16:06:29.44 ]
ところがドッコイ、仕様です!

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



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

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

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

563 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 16:37:40.70 ]
>>562
参照カウンタじゃあるまいし。

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

565 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 19:03:53.80 ]
日本語訳が更新されたっぽいぞ!
www.kmonos.net/alang/dd/

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

567 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 19:42:16.98 ]
>>555
バグじゃないよGC持ってる系の言語初めて?

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

569 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 20:49:17.52 ]
暇にかまけて作ってしまった。後悔はしていない。
ttp://www.dotup.org/uploda/www.dotup.org3038466.png

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



570 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 20:50:42.09 ]
>>569
ああ・・・次はアクションゲーム部分だ・・・

571 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 20:58:10.10 ]
え?アクション?えぇ??ちょっ・・・。Orz

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

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

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

574 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 22:00:21.15 ]
せっかくだし、共同制作でもしようぜ!
とりあえず仕様決めよう。
sourceforge.jp/projects/d-action/wiki/FrontPage

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

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

575 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 22:25:45.01 ]
>>569の画像って使ってもいいのかなー。

576 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 22:28:09.04 ]
dxlib4dとか最近あるよ
簡単だし、いいんじゃないかな

577 名前:569 mailto:sage [2012/05/31(木) 02:41:56.42 ]
>>573
うーん。そうですかねー。うーん。

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

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

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

578 名前:577 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:26:32.97 ]
>>577-578
まさかのハードコードww
まあ、実用上は問題ない。

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

581 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:34:39.37 ]
>>579
あいまいさの意味はわからないが、

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


582 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/05/31(木) 12:44:29.60 ]
>>581 有難う御座います。

583 名前:538 mailto:sage [2012/05/31(木) 14:06:37.21 ]
バカな・・・
-L/SUBSYSTEM:WINDOWS:4.0で直った・・・だと・・・
M$は俺に謝罪しろ!今すぐにだ!

584 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 14:23:37.51 ]
>>583
defファイル渡してなかったってオチ?w

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

586 名前:538 mailto:sage [2012/05/31(木) 14:51:10.07 ]
>>584
VisualDに任せっきりなのでdefファイルてのは分からん

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

587 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 18:52:23.64 ]
>>579
あいまいになりようがなくね?

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

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

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



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

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

592 名前:デフォルトの名無しさん mailto:sage [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を両方インストールする
katahiromz.web.fc2.com/d/instboth.html

594 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/06/01(金) 16:28:02.53 ]
AliasThis(修正済み)
codepad.org/FyQaxFrm

595 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 16:43:10.26 ]
dlang.orgもdigitammars.comもどうしちゃったん?

596 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 16:53:31.72 ]
>>594
おお、修正したか!

597 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/06/01(金) 17:01:03.40 ]
opIn, opIn_rがD1で動作しないみたいだが。。。

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

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



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

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

602 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 17:27:05.88 ]
と思ったら、もう修正してあるのか・・・ すまん。

603 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/06/01(金) 17:33:08.27 ]
opAssignを削った。
codepad.org/ag57xGM2

604 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/06/01(金) 17:36:35.73 ]
>>603 ごめん、間違えた。

605 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 17:40:38.89 ]
>>603
ん? よく見たら戻りの型がポインタじゃない?

606 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/06/01(金) 17:45:05.82 ]
>>594が正しくて、>>603が間違いです。

607 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 18:57:45.04 ]
超オッケー!
codepad.org/prMuyK0w

608 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 19:37:44.19 ]
なんで今さらD1なんかで盛り上がってんだ?

609 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 19:38:20.51 ]
陰謀を感じる



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

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

612 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 00:37:47.20 ]
>>569 >>574
メタセコイア用のローダ書いたのでよかったらお使いやがれください。
ttp://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip

613 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 01:08:33.74 ]
>>612
超いい仕事した

614 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 01:37:55.66 ]
>>612
おー、まわる〜。

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

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

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

617 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 08:23:00.41 ]
immutableなデータをdeleteするなんてことが許されていいんですか!?

618 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 18:19:43.63 ]
>>612
sworks.compo.*も自作?

619 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 04:21:43.03 ]
3Dの一般的なモーションデータならbvhらしいけど、メタセコ特化ならmikotoやMMDの形式はどうだろう

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

622 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 14:14:04.32 ]
socketstreamのavailableが常に0で来る・・・

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

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






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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