1 名前:デフォルトの名無しさん [2008/04/14(月) 15:16:22 ] プログラミング言語 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フロントエンド) ■参考URL ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究) ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF) 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の入門講座) ttp://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画) ttp://www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games) ■ IDE ttp://dronten.googlepages.com/dscite (DSciTE) ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks) ttp://www.dprogramming.com/entice.php (Entice Designer) ttp://www.dsource.org/projects/descent (Descent) ttp://www.dsource.org/projects/poseidon (Poseidon)
684 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 12:46:38 ] dic.nicovideo.jp/b/a/D%E8%A8%80%E8%AA%9E/1 誰だよ
685 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:41:25 ] いまどきデフォルトエンコードがUFT-8じゃないOSが糞ということ
686 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:45:36 ] >>684 >5のマヌケな足の開き方が素敵
687 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:48:48 ] 主要なソフトがsjisにも対応していればいいだけの話で 過去との互換性を気にするならば 最低限のテキストエディタのメモ帳ぐらいが対応すればいい話 win用で人気のあるテキストエディタはutf8とか対応してるしな
688 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 14:49:14 ] はやくstdoutにフィルターをかぶせられるようにしてほしい。
689 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 20:18:32 ] クラスに単純な値コピーをさせる方法ってありましたっけ
690 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 20:59:24 ] >>688 ああそういうことができるんだね でもできないんだね >>689 あったっけ?なかったような
691 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 22:59:57 ] 中文やらハングルやらが扱えないようにおれは A のAPIでやってるぜ。
692 名前:デフォルトの名無しさん [2008/07/12(土) 01:28:36 ] だいぶ前に出てて挫折してた 「dsource.orgのWin32Api Bindingsをdmd2.0でコンパイルすると出るエラー」 が、いつの間にかなくなってるッ!! >>340 (いつからなおってたんだー!?) やっと2.0系に復帰できるワァ
693 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:41:01 ] >>692 半年前には大丈夫っだった気がするが、 使ってるAPIの差かもしれん
694 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 06:31:50 ] >>692 DMD2.016でまたむりぽ
695 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 07:25:41 ] >>692 半年前には直ってたものを壊れた瞬間に知るとかw
696 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 07:28:55 ] 型なのに型として認識してくれなくてやってた苦肉のtypeof(型)ができなくなってるね 元々の問題が修正されたのならいいのだけど
697 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 10:44:36 ] DMD 2.017 リリース
698 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 11:16:58 ] >>697 まじだ バグフィックスだけだね
699 名前:デフォルトの名無しさん [2008/07/12(土) 15:04:08 ] Webから画像ダウンロードできたりしますか
700 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 15:27:12 ] できる。
701 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 21:05:40 ] >>678 だからUTF-8でない文字列をchar*に入れるなとあれほど…
702 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 21:12:50 ] mbsはubyte*にするべきだったりするの?
703 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 21:14:19 ] >>702 もちろん
704 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 22:16:11 ] charはutf-8って規格で決まってるからな−。 それ以外が入ってるのは気持ち悪いというか、間違っているという話。
705 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 23:09:10 ] >>678 >>701-704 こういう案はどうなの? ttp://rayerd.ddo.jp/pukiwiki/ingwiki/index.php?D%B8%C0%B8%EC%A4%C8MBCS%A4%CE%CF%C3
706 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 00:35:33 ] もうstd.encodingがあるしやるならその上に作るべきでは
707 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 00:37:29 ] >>705 wstring toUTF16(in mbchar[] s, in uint codePage=0) { mbstring sz = (s ~ cast(mbchar)'\0').idup; wstring result; result.length = MultiByteToWideChar(codePage, 0, cast(char*)(sz), sz.length, null, 0); MultiByteToWideChar(codePage, 0, cast(char*)sz, sz.length, cast(wchar*)result, result.length); return result; } invariantであるresultに書き込もうとしてるのはおかしいな。 キャストしてしまってるから本来検出されるはずなのエラーがでなくなってる。 MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length); でコンパイル通るように直したほうがいい。
708 名前:デフォルトの名無しさん [2008/07/13(日) 01:23:06 ] Dで外部アプリの実行とかってどうやればできますか。
709 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:27:03 ] >>707 ノ >>708 import std.process; std.process.system("dir");
710 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:31:20 ] >>706 正直申し上げますと、あれインターフェイスが糞すぎる
711 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:34:08 ] >>709 あ・・・ありがとう。 CreateProcess使ってできてやったーとか思ったらそんな簡単に・・・
712 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:35:03 ] std::basic_stringの仕組みを丸ごと移植したらどうかと思うのだが
713 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 01:44:57 ] >>707 > MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length); > でコンパイル通るように直したほうがいい。 え・・・そんなんできんの・・・
714 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:02:06 ] OpenGLのポーティング、D2.0でもデフォのまま使えるようになったのね さっき最新取ってきて直そうと思ったら、既に修正済・・・感動した
715 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:07:24 ] Linux系でD言語やろうと思ったらここ見ればいいってHPないですかね。
716 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:07:29 ] >>713 ???
717 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:11:21 ] >>716 MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length); キャストなしのこれをコンパイルエラー出さずに書くやり方があるのかなと
718 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:50:24 ] もうperlみたいにしてしまえ
719 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 04:22:25 ] tangoのProcessってサンプル使ってもうごかないんすけど。
720 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 04:25:54 ] よくあること
721 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 04:41:14 ] Executeしないと動かなくなってた><
722 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 05:20:48 ] HttpClientのGetResponseが爆発してて自分の手に負えません。 だれか画像ゲットのやりかた教えてください。
723 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 08:40:25 ] 1年ぶりに着たけどやっぱ仕事では使えなさそう。 俺と同じ。知ってた。
724 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:09:18 ] >>720 本当に良くあるから困る stdioのwriteflnの時は俺がラリった ioを自分で作成して出力せにゃいかんのかと思ったり
725 名前:722 mailto:sage [2008/07/13(日) 09:29:22 ] Descentが教えてくれる関数一覧を信じすぎました。 事故解決。
726 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:23:13 ] だから安定版ならD1.0があると(ry
727 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:36:52 ] D1.0系列って本当に安定してるの?
728 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:37:31 ] 仕様は安定してるよ。
729 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:55:23 ] >>726-728 わらた このままバージョンが変わらないでいてくれたら D-1とかD-2とかいう扱いでコードの配布が安定できて嬉しいな
730 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:00:23 ] D2.0が安定化するころにはD3.0が登場してて阿鼻叫喚になってると予想してみる
731 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:02:17 ] メジャーバージョンアップ=仕様の確定=完全な互換性の断ち切り
732 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:06:18 ] phobos vs tango d1.0 vs d2.0 で組み合わせが四通りあるから困る d1.0+phobosで開発してきたが、tangoのFiber使いたい俺としては せめてphobosとtangoが共存してくれれば...
733 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:12:06 ] codepad.org/biiWqnSH FizzBuzz書いてみたいがtoStringってコンパイル時に動かないんだな
734 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:00:40 ] >>733 っ std.metastrings
735 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:07:07 ] DだとFizzBuzzを最小何文字で作れるんかな ちなみに俺は140文字だった
736 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:18:48 ] >>735 www.shinh.org/p.rb?FizzBuzz#D に83バイトという記録がある。 いったいどんなコードなのやら。
737 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:24:29 ] >>730 それは>>731 から本望 QED >>732 tangoがphobos準拠じゃないのが悪いんだよ なんで自作ライブラリごときが標準ライブラリと共存できないんだってことだよw
738 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:33:21 ] tangobosは?
739 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:40:02 ] >>737 tangoはGCや配列キャストなどの言語の基幹部分も独自に持っていて、 phobosを置き換えるのが目的で作られてるから、共存できなくて当然。
740 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:39:01 ] >>736 切り詰めて87文字 しかも数字が表示できない、中括弧使うと文字増えるしなぁー import std.stdio;void main(){int i;while(i++<100)writef(i%3?"":"Fizz",i%3?"":"Buzz");}
741 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:44:04 ] >>740 printf使えばもっと短くできるんじゃない?
742 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:55:04 ] >>739 じゃあphobosが言語の基幹とライブラリの機能分担に失敗してる?
743 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:21:54 ] >>741 これで99文字 void main(){for(int i;i++<100;)printf("%.*s%d",(i%3?"":"Fizz")~(i%5?"":"Buzz"),!(i%3&&i%5)?0:(i));} こっちが別案(100文字ジャスト) void main(){int i;char[]s;while(i++<100)printf("%.*s%d",s=(i%3?"":"Fizz")~(i%5?"":"Buzz"),s?0:(i));} どっちもゴミが入るし83文字なんて…
744 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:16:42 ] >>732 D言語研究室にファイバあった。 前に試したけど、ファイバの部分だけならコンパイル通るようにするのはそれほど難しくない。
745 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 01:40:53 ] d で windows アプリケーションを作るときに XP のビジュアルスタイルを当てる方法をおしえてください
746 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:13:17 ] マニフェスト作ればいいんじゃないの。 詳しくしらんが。
747 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:26:09 ] %03dとかやれる関数ってないっすか。
748 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:35:44 ] std.string.format
749 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 03:12:25 ] std.c.stdio.sprintfでおk
750 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 03:53:45 ] tangobos で tango と phobos を同時に使うと、無駄に富豪的な気分がするぜ
751 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:10:02 ] tangoではないんでしょうか。 char[] format(char[] format, ...) { Sprint!(char) sp = new Sprint!(char); return sp.format(format, _arguments, _argptr); } とかやっても%がそのまま出力されちゃうんですが。
752 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:34:12 ] >>751 tangoのフォーマットはC#と同じなのでそのようにやると良い。
753 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 10:31:52 ] >>750 同時につかえるやつなんだ!しらんかった 両ライブラリの最新に対応してるのかなぁ てかObjectクラスが違うはずなのに大丈夫なのかな
754 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 13:25:00 ] tangoの方のオブジェクトが使われるはず。 問題が出たとしても、そういうことの解決をやるのがtangobosっていう擦り合わせのプロジェクトですよ。
755 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 13:43:00 ] やっぱ、tangobosって方向性として間違ってるよなw
756 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 14:09:00 ] >>745 main.exeが実行ファイルだとしたら、以下の内容をmain.exe.manifestとして保存して実行ファイルと同じフォルダに入れておけば、どんな言語で作ってもXPビジュアルスタイルになる。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="main" processorArchitecture="x86" version="1.0.0.0" type="win32"/> <description>main</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
757 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:07:12 ] >>752 そうだったんですか。 ありがとうございました。
758 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:04:15 ] こんなところ見つけた。 www5.atwiki.jp/yaruhara/pages/74.html
759 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:56:39 ] >>758 かなり気合入ってるな
760 名前:デフォルトの名無しさん [2008/07/15(火) 05:11:03 ] ディレクトリ系の例外拾うと、システムの日本語が入ってるせいか文字化けするんですが、 誰か治し方しりませんか。
761 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:04:24 ] 連投ですいません。 auto http = new HttpClient( HttpClient.Get, "localhost/test.jpg " ); http.open(); HogeClass _this = this; DataOutput stream = new DataOutput(new FileOutput( this.current.toString()~"hoge.jpg" )); if( http.isResponseOK ) { int len = http.getResponseHeaders.getInt( HttpHeader.ContentLength, int.max ); http.read( (void[] data) { stream.write(data); //○ _this.addPicture(data);//X _this.last = data;//X }, len ); } stream.flush(); stream.close(); http.close(); Dlした画像のデータをvoid[][]dataで保存しておきたいのですが、 無名関数を出たとたんにDLしたデータが壊れてしまってるようです。 何が駄目なんでしょうか?
762 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:24:41 ] dataをdupしたら解決しそうな気がする
763 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:36:56 ] だめですた・・・・・
764 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:46:32 ] voidはどうすればキャストとかできるんでしょうか。 中身をのぞいてみようと思ったんですが、何にもキャストができません。 あと、 無名関数内の引数dataのlengthは1716でlenは4323でした。
765 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:28:28 ] Voidはキャスト可能でした><
766 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:03:14 ] >>760 再現コード
767 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:02:20 ] >>764 無名関数が複数回呼ばれることを理解してない、ということかな? 無名関数内の引数dataは実際のデータが小分けになっている。 複数回呼ばれたときのdataを全部連結すると、お望みのデータになるよ。
768 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:25:29 ] >>767 おおおおう。 できました。 ありがとうございました。
769 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 05:35:23 ] FizzBuzz書いてみた codepad.org/zAwWfbs7 codepadはmetastrings使えないんだな tangobos使ってるみたいだがバージョンが古いんだろうか
770 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:58:19 ] >769 std.string.toString() 使えば、toStr 要らなくね?
771 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:12:32 ] おこられたcodepad.org/jHEx9kA5
772 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:20:06 ] 配列の末端から取り出すのって皆さんどうやってますか?
773 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:45:37 ] リバースして、ふぉーいーちにかけるか、ふぉーで配列の要素数-1から逆順でとる。 それ以外ってあるかなぁ。
774 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:52:21 ] foreach_reverseがあるのに,なんでわざわざreverseするのん?
775 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 22:21:55 ] /home/d/dsss/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../libDG-tango-io.a(tango.io.Conduit.o): In function `_D5tango2io7Conduit7Conduit5errorMFAaZv': Conduit.d:(.text+0x134): undefined reference to `_D5tango4core9Exception11IOException7__ClassZ' Conduit.d:(.text+0x151): undefined reference to `_D5tango4core9Exception11IOException5_ctorMFAaZC5tango4core9Exception11IOException' /home/d/dsss/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../libDG-tango-io.a(tango.io.Buffer.o): In function `_D5tango2io6Buffer6Buffer5errorMFAaZv': Buffer.d:(.text+0x1580): undefined reference to `_D5tango4core9Exception11IOException7__ClassZ' Buffer.d:(.text+0x159d): undefined reference to `_D5tango4core9Exception11IOException5_ctorMFAaZC5tango4core9Exception11IOException' collect2: ld はステータス 1 で終了しました Command /home/d/dsss/bin/rebuild returned with code 65280, aborting. Error: Command failed, aborting. これはいったい何をぐぐったらわかるんでしょうか。
776 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:48:33 ] >>775 ldの引数で、-lDG-tango-ioの右側に-lDG-tango-coreが書いてない、ということだな、そのエラーメッセージは。 ldはライブラリの依存関係に沿って引数を書かないとリンクエラーになる。
777 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 09:24:16 ] >>773 うそだろ v[$-1]じゃねーの!?
778 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 10:09:25 ] >>777 おまえは何を言っているんだ。
779 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 10:43:50 ] >>778 777じゃないが俺が代弁しよう。きっとこういいたかったに違いない。 while (v.length) { func(v[$-1]); v.length = v.length-1; }
780 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 11:24:50 ] >>779 お前凄いな。
781 名前:777 mailto:sage [2008/07/18(金) 13:13:09 ] >>778 ごめん、末端から「順に」取り出すのね。 勘違いしてました >>779 エスパーすぐる! フォローまでしていただいて・・・
782 名前:773 mailto:sage [2008/07/18(金) 16:54:03 ] foreach_reverseって実装されてたのか。 ROMってるだけだと疎くなっちゃうね。正直すまんかった。
783 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:38:34 ] かなり昔からある気がするが…
784 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 20:09:01 ] >>776 使ってるのはdsssなんですが、直すにはどの辺り調べるといいんでしょうか