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


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

D言語 Part16



1 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 23:00:35 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語)
ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)

552 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 01:44:06 ]
ぺたぺた
やっと最初のやつ直ったのな

553 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 12:44:34 ]
Open Tech Press | プログラマの生産性を高める新たな言語「D」
ttp://www.itmedia.co.jp/enterprise/articles/0801/22/news058.html
これでD言語にも人気が出てくるといいな。

554 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:34:28 ]
>>541
へー、WindowsAPIってOSの機能を使うだけって思ってたんですがこういう関数も結構あるんですね。
ありがとです。

555 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:26:52 ]
functionをdelegateに変換!みたいなことってできないの?

556 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:37:44 ]
>>553
>GDCはDMDとは違って今のところはまだ標準に100%の準拠はしていない。
標準?そんなものあったの?

557 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:50:09 ]
>>556
ウォルたんのページに書いてるのが標準。ただし、頻繁に変わるw

558 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:56:03 ]
>>555
delegateは実はただの構造体のようなもの。

TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) {
typeof(return) dg;
dg.ptr = null;
dg.funcptr = fn;
return dg;
}

559 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:07:24 ]
>>558
それスタックずれる

560 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:13:03 ]
じゃあこうかな

TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) {
return delegate TR(TA args){ return fn(args); };
}



561 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:49:56 ]
private struct FunctionCaller(R, A...)
{
R call(A args)
{
return (cast(R function (A))this)(args);
}
}

R delegate (A) todg(R, A...)(R function (A) func)
{
FunctionCaller!(R, A) c = void;

auto res = &c.call;
res.ptr = cast(void*)func;

return res;
}


562 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 06:33:07 ]
>>558-561
なんでそんなに詳しいんだ

563 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:23:38 ]
>>557
そのアップデート速度がDの魅力。
仕様が10年も変わっていないC++には真似ができない。
ただ、最近はDMDの更新が遅いと思い始めた。病気だろうか。

564 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:49:37 ]
>更新が遅い
超わかりすぎるw


565 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 14:07:56 ]
機能追加されるたびに「迷走しすぎじゃね?」とか書き込むけど、バグフィックス中心の更新だとなんか寂しい俺は既に完全調教されているのか。

566 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 15:29:41 ]
>>563,565
よう俺

567 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:56:03 ]
さびしがりやさんかわいい

568 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 21:17:05 ]
>>550
その手直しされたファイル群をうpしてくれ

569 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:08:47 ]
if (s[$ - 2 .. $] == "\r\n")
if (s[$ - 1] == '\n' && s[$ - 2] == '\r')

文末にCRLFがあるか調べるだけの条件式ですが、
これらは似たようなものなのに、後者の方が6倍ほど速くなるのは何ででしょうか?

570 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:23:29 ]
>>569
文字列の比較か整数の比較か。



571 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:27:42 ]
>>569
一番大きいのは配列比較関数を呼び出すオーバーヘッドじゃなかろうか。

572 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:14:43 ]
>>570-571
いろんな理由があるんですね。
でも、どっちにせよ10000000回まわしてやっと差が二秒出る程度なのであまり気にしないことにします。

573 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 10:40:33 ]
DでつくったCOMサーバにTypelibを埋め込むにはどうしたらいいんだぜ?

574 名前:573 mailto:sage [2008/01/25(金) 10:49:57 ]
言葉足らずすんません
DでつくったCOMをC#からつかってみようと思ったんだけど、
登録できなくて、いろいろしらべたら、タイプライブラリが組み込んでないからだと
思うようになったんです。

以下C++でDのサンプルにあるdserver.dを呼び出す方法です
GUID CLSID_Hello = { 0x30421140, 0, 0, {0xC0,0,0,0,0,0,0,0x46} };
GUID IID_IHello = { 0x00421140, 0, 0, {0xC0,0,0,0,0,0,0,0x46} };
HRESULT hr;
class IHello : IUnknown {
public:
virtual int STDMETHODCALLTYPE Print()= 0;
};
IHello* pIHello;
hr=CoCreateInstance( CLSID_Hello, NULL, CLSCTX_ALL, IID_IHello, (void**)&pIHello);
pIHello->Print();

575 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:31:29 ]
IDLを書いて、midlでタイプライブラリにコンパイルして、typelib型のリソースとしてリンクすればいいんじゃなかろうか。

576 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:28:14 ]
Ubuntu (amd64) 上でのGDC (amd64) で、Tango使えますか?
↓ここには、バイナリはi686用しか用意してないって書いてますが...
www.dsource.org/projects/tango/wiki/GdcDownloads

ソースから自力コンパイルするといいのかしらん。


577 名前:573 mailto:sage [2008/01/25(金) 16:46:13 ]
>>575
VisualStudioで適当なActiveXプロジェクトをつくって
そこでできたresファイルをDMDにくわせたら・・・
うをを、登録できた!
これで575さんの言うとおりの事をやればいける予感です
 ありがとうございます!

578 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:00:57 ]
pure関数ってconst関数となにか違うの?

579 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:14:37 ]
結果が引数だけに左右される関数。
CTFE出来る関数は純粋関数。

580 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:55:01 ]
副作用が無い関数か。
ところでpureキーワードの説明、どこに載ってる?



581 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:02:56 ]
>>580
news://news.digitalmars.com:119/fn1p18$aem$1@digitalmars.com

> > Thanks! Are there any short-term plans to do anything with 'pure',
> > or are you just reserving the keyword (as was done for 'macro')?
>
> It's just to reserve it.

582 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 08:24:35 ]
emacsのflymake使えるの?
使えたら設定の仕方教えてください。

583 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:36:06 ]
【レス抽出】
対象スレ: D言語 Part16
キーワード: の?

抽出レス数:26

584 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:39:12 ]
>>582
ちょっとはぐぐればいいのに

585 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:44:20 ]
教えてください。
と丁寧に頼む割りに
使えるの?
というたずね方。

つまり
教えてください。
は形だけ丁寧にしたってことだね><

586 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:48:30 ]
>>585
細かいぞ、と初レス

587 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:12:01 ]
kmonos.net/alang/d/ がみえないよ(TT)
ど、どうしたのかなぁ・・・

588 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:30:55 ]
>>587 少しはさがせよw
www.kmonos.net/alang/d/1.0/
www.kmonos.net/alang/d/2.0/

589 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:36:51 ]
>>588
いやいや、更新中だったと思われ
/2.0フォルダが無かった
乙です。お世話になってます。>inaba氏


590 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:33:08 ]
久々に一日みっちりコード書いたけど、
string回りでエラー出すとinvariant(char)[]がうじゃうじゃ見えるのが鬱陶しいー。
文字列=>文字列の連想配列とか使うともうわけわからん。
stringがクラスになる日はもう来ないのかなぁ……

ところでDで設定ファイルを扱うとなると、何が定番だろう。



591 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:40:04 ]
iniとかyamlとかでいいんじゃね

592 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:41:01 ]
ふとC++を知っている人にD言語のコードを説明するとき、ベースは似たようなものだから説明も少しでいいか…と思ってたら、
withだのsyncronizedだのscopeだの型推論だのプロパティだのとD節全開な自分のコードがそこに広がっていた。

(C++やJavaさえ知っていれば)習得が容易というのはDの売り文句なはずだけど、
誰かヲルタたんを止めないと…この調子でいったら……とおもった。
まぁ個人的にはバッチコイだけど。

593 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:49:42 ]
syncronizedはJava、withはVBやJavascriptにあるから、それなりに知名度あると思う。
scope属性はC++のauto属性、scope文は他の言語では見たこと無いなぁ。

594 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:13:15 ]
scope 文は C# の using 文じゃないの?

595 名前:593 mailto:sage [2008/01/27(日) 18:30:47 ]
間違えた。scope文じゃなくてスコープガード文ね。

596 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:06:04 ]
>>590
全然関係ないけど、うちの同僚が「久々にムッチリコード書いたぜ」ってメールだしてきたのを思い出してワラタ


597 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:27:15 ]
>>595
boostにスコープガードなかったっけ。

598 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:19:11 ]
エントリポイントってmain固定?

599 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:28:13 ]
main
WinMain
DllMain
の3つじゃなかったかな

600 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 08:40:53 ]
D1→D2の違いまとめ、だそうだ
www.digitalmars.com/d/2.0/features2.html




601 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:32:47 ]
 Version D 2.011   Jan 25, 2008
New/Changed Features

    * Re-enabled auto interfaces.

Bugs Fixed

    * Bugzilla 1072: CTFE: crash on for loop with blank increment

更新内容が最近寂しいのは、そろそろ3.0ですよってことなのだろうか

602 名前:デフォルトの名無しさん [2008/01/29(火) 17:46:00 ]
>>601
>そろそろ3.0ですよってことなのだろうか

だめだはやくウォルタンを止めないと・・・

603 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:30:36 ]
D2は黒歴史ってことなのか

604 名前:デフォルトの名無しさん [2008/01/29(火) 18:54:58 ]
その問いにはまずD1.0が黒歴史か否かを答えねば

605 名前:デフォルトの名無しさん [2008/01/29(火) 19:54:59 ]
早くtangoを標準にしてくれ...

606 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:00:45 ]
tangoは命名規則きもちわるいんだよなあ

607 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:58:43 ]
だよなー
どうして推奨の命名規則を守らないのか
訊いてみたいが言葉の壁ががが

608 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:05:01 ]
auto interfaceってなんだっけ。

609 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:00:09 ]
tangoキモいキモい言いながら、実際に使ってみるとphobosよりもいい感じなんだよなぁ

610 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:08:47 ]
tangoはStdoutのopCallのオーバーロードがきもすぎ。
C++のシフト演算子よりも寒気のする記法があるとはおもわなんだ。



611 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 02:05:01 ]
>>610
>C++のシフト演算子よりも
そんなまさか

612 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 02:32:17 ]
>>609
そうなんだあ・・・勉強してみようかな

613 名前:デフォルトの名無しさん [2008/01/30(水) 02:35:20 ]
おまいらキモイキモイ言いたいだけちゃうんかと

614 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 03:38:33 ]
opCall使わないほうのやつなかったっけ?

615 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:10:43 ]
foo("")(1)(2)(3)(4)(5); みたいな形だっけ?

616 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:21:17 ]
Stdout("foo")(bar)とかもう何ひとつ分からない。
「標準出力に"foo"、barを書き込む」って言わせてほしいのに、
「barを"foo"を標準出力したものする」と言わされるという不思議。

あ、なんか書いてて「標準出力って動詞じゃね? ”標準出力する”て自然じゃん」て思えてきた……。
「"foo"を標準出力先する」 うん、これならちゃんと不自然だ。


んあ? API Index見たら、tango.group以下のだけちゃんと小文字だな。
tango.group.collectionならtango.util.collection以下を全部public importするのか。ほほー。

617 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:45:39 ]
実際はこういうことをやってるだけなんだよな

auto o = Stdout(1);
o = o(2);
o = o.newline();
o = o(3);
o.newline();

618 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:47:59 ]
newlineをメソッドにしちゃうあたり、神経を疑うわ

619 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:39:47 ]
無理にopCallのを使わなくても、tango.io.Print 使えばC#形式で使える。

620 名前:619 mailto:sage [2008/01/30(水) 14:52:34 ]
すまん。tango.io.Stdout だった。classがtango.io.Printな



621 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:48:19 ]
2.011ってどこにあるの

622 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:49:55 ]
をるたんのマシン

623 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:09:33 ]
2.011は落とさせる気はないのか

624 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:18:11 ]
まえもあったな、こんなこと。

625 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:21:11 ]
作りかけので更新して気づいてないんじゃね。
それか気づいてても直すの面倒なだけか。

626 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:44:50 ]
D2.0でコンパイル通るGUIライブラリないかね。

Winだけで動けばいいから、あまりごてごてしてなくて、
普通にWinAPIのオブジェクト指向ラッパみたいなのでも構わないんだが。

627 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:53:43 ]
>>626
豊富な日本語ドキュメントもほすぃ

628 名前:626 mailto:sage [2008/01/31(木) 22:05:19 ]
どう探しても無いみたいだから、自分で作るかなあ。
激しく車輪の再発明なわけだが、勉強にはなりそうだし…


時代はWPFに遷りかけてるのに一体何をやってるんだか。

629 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:16:13 ]
>>628
完成したころにD3.0が…

630 名前:デフォルトの名無しさん [2008/01/31(木) 22:57:26 ]
さっきDFLとWinAPI同時に使おうとしたらエラー出て使えなかった。
SetWindowsHookExとDFLのフォームを使いたかったんだけどなぁ。

ちなみにWinAPIってのは
www.dsource.org/projects/bindings/wiki/WindowsApi
を利用した方ね。tango内のWin32ではなくて。

...あ、static importすればいいのか。



631 名前:630 [2008/01/31(木) 22:59:50 ]
↑なんでstatic importだよw
そうじゃなくて「選択 import」ね。
でもstatic importも選択importも使ったこと無いなぁ。

632 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:25:04 ]
バージョン1.026とbinding win32apiだけでコンパイルできる
GUIライブラリを使わないでwin32apiだけを使ったウインドウをただ表示するだけのサンプルコードはどこかにありませんか?

633 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:14:51 ]
>>632
わなDのが近い。書庫の展開とかやってるけど、main関数はまんま。
つか、その条件ならDじゃなくて、C/C++のサンプルコード探したほうがいいんじゃね?

634 名前:デフォルトの名無しさん [2008/02/01(金) 15:28:53 ]
>>632
www.kmonos.net/alang/wnd/topics/winapi.ja.html

635 名前:デフォルトの名無しさん [2008/02/01(金) 17:39:16 ]
>>634
そこからWin32のバインディングをダウンロードしたいのですが
やりかたがわかりません・・・
TortoiseSVNでやってみてるのですが・・・

636 名前:デフォルトの名無しさん [2008/02/01(金) 18:22:12 ]
あー、あれね。俺も迷った。←SVNよく分からない
ダウンロードは
www.dsource.org/projects/bindings/browser/trunk
の一番下のDownload in other formats: Zip Archiveから出来る。
trunk以下すべてが入ってるけどそこからWin32だけ抜き出せばOK
trunk/win32をブラウザで開いてもZip Archiveのリンク無くて迷った。

637 名前:636 [2008/02/01(金) 18:30:15 ]
ちなみにあれってSVN使えばDL出来るのかな。一応試したんだけどエラーばかりだった。(自分の操作が間違ってた可能性大)

それと今exeファイルのアイコンを変える方法探してるんだけど。。。無理?だよねぇ。
外部ツール使って書き換えでもいいけど、コマンドラインから使えるタイプのものってないだろうか。

638 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:40:14 ]
>>636
ををっそんな小さなところに!
ありがとうございます

これすごいですね、DirectX10まである

639 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:40:34 ]
>>637
ttp://www5.atwiki.jp/yaruhara/pages/74.html#id_7e0a1665
これ? でいいんかな。試してないんでよく知らんが。

640 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:51:33 ]
svn co svn.dsource.org/projects/bindings/trunk/



641 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:00:34 ]
ここで>>550氏の出番ですよ

642 名前:636 [2008/02/01(金) 19:02:03 ]
>>639
サンクス!これで出来た。dsssはresの扱い方知らないとか言ってきたけどw

643 名前:636 [2008/02/01(金) 19:17:50 ]
>>640
なるほどアドレスが違ったのか。そのままwww.dsource.org/でコマンド打ってたらそりゃ無理だ罠。

644 名前:636 [2008/02/01(金) 19:34:46 ]
dsssでも以下のようにするとresをつけれました。
dsss build main.d -L/RC:test.res

645 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:36:41 ]
某所にあったシリアライザーをちっとだけ修正してみました
{{は.diになったときのエラーよけ

ubyte[] serialize(T)(in T t)
{
ubyte[] rv;
static if( is(T==struct) ) {{
foreach(x;t.tupleof)
rv~=serialize(x);
}} else
static if( __traits(isIntegral,T) ) {{
rv=(cast(ubyte*)[t].ptr)[0..T.sizeof];
}} else
static if(__traits(isStaticArray,T)) {{
rv=cast(ubyte[])t;
}} else
static if(is(T U:U[][])) {{
rv=serialize(t.length);
foreach( v; t) {
rv~= serialize(v);
}
}} else
static if(is(T U:U[])) {{
rv=serialize(t.length) ~ cast(ubyte[])t;
}} else {{
assert(0,"unsupported");
}}
return rv;
}


646 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:37:10 ]
template ReturnType(T)
{
static if(__traits(isStaticArray,T) && is(T U:U[])) {
alias U[] ReturnType;
} else {
alias T ReturnType;
}
}

ReturnType!(T) deserialize(T)(ubyte[] t)
{
ubyte* ptr = t.ptr;
return _deserialize!(T)(ptr);
}



647 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:37:54 ]
private ReturnType!(T) _deserialize(T)(ref ubyte* t){
ReturnType!(T) rv;
static if(is(T==struct)) {{
foreach(i,x;rv.tupleof) {
static if(__traits(isStaticArray,typeof(x)))
rv.tupleof[i][]/*x[]=*/=_deserialize!(typeof(x))(t)[];
else
rv.tupleof[i]/*x=*/=_deserialize!(typeof(x))(t);
}
}} else static if(__traits(isIntegral,T)){{
rv=*cast(T*)t;
t+=T.sizeof;
}} else static if(__traits(isStaticArray,T)&&is(T U:U[])){{
rv=cast(U[])t[0..T.sizeof];
t+=T.sizeof;
}} else static if(is(T U:U[][])){{
int len = _deserialize!(size_t)(t);
rv.length= len;
foreach( i; 0..len) {
rv[i]= _deserialize!(U[])( t);
}
}} else static if(is(T U:U[])){{
int len = _deserialize!(size_t)(t);
rv= (cast(U*)t)[0..len];
t+=len*U.sizeof;
}} else {{
assert(0,"unsupported");
}}
return rv;
}

だれか連想配列たのむ

648 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:04:16 ]
>>647
単に長さを最初に入れて、キーと値を交互にserializeして詰めていけばおkじゃね?

649 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:04:22 ]
こういうの見るとC++はつらかったな・・・と思いだす

650 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:36:59 ]
>>633-634
どうもです。
そこの気合いの入った例のコードをとりあえずコンパイルしてみました。
何度かエラーが出たりしましたが何とかコンパイルできました。

出たエラーは
tchar.dのtc.TtoW().toUTF8()の部分。
no property 'toUTF8' for type 'int'といわれてしまった。
これはほかのサンプルソースを拾ってきて学習しているときにも、同様の形式でよく出た。
javascriptでこういう書き方を良くやったけど、出来ないのかな?
toUTF8(TtoW(tc))にしたらコンパイルは通った。

後はインポートするファイルがどれかわからなかったのと、
リンクするファイルもどれかわからなかった。
で、コンパイルのコマンドラインはtcharを同じディレクトリにおいて
dmd test tchar shell32.lib win32.lib main.def -version=Unicode

import win32.core;
import win32.shellapi; // DragQueryFile 等
import tchar;
import std.windows.charset;
をインポートしたら通った。

tchar.dの方は
module tchar;
import win32.windef;
import std.utf;
import std.string;
private import win32.winbase;
で通った。



651 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 00:52:04 ]
ちょっとOpenGLでも触ってみるかと思って
Derelict落としてchar[]をstringに置換したりしつつdmdに突っ込んでみたら
例のAssertion: t->decoで泣ける。
>>550を見つけて神かと思ったものの、
問題の箇所を見つけるのはなかなか大変そうだ……早く直してくれぇ。

あと.di食わせたら"Error: unrecognized file extension di"とか言われてしまった。
まさか仕様じゃないよな……?

652 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:51:11 ]
>>651
.diはimportに使うだけで、コンパイラに与えるものじゃないよ。






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

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

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