D言語 Part29at TECH
D言語 Part29 - 暇つぶし2ch446:デフォルトの名無しさん
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