- 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)
- 672 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:05:19 ]
- >>671
opEqualsの戻り値型が変わったことぐらいだろ。
- 673 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 12:38:58 ]
- stringzとかいう型出来ないかな
文字列が入ると最後に'\0'を埋めてくれて writeflnなどD用の時は'\0'を無視、 C用の時は'\0'を使えるという感じに もしくはC用の関数内では最後に'\0'が付加されるというような toStringzで事足りるんだけどな
- 674 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:34:06 ]
- >>673
リンケージによって文字列の内部構造が変化するのは便利かもだけど怖い
- 675 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 20:38:11 ]
- opEqualsとうとうboolになったのか。
パフォーマンスが云々うぉるたんが抵抗してたのは解決したんかな。 しかしTangoはどうあってもモジュール名のUpperCamelを止める気はないのだろうか。
- 676 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:39:03 ]
- >>675
いまさら変えられても混乱するしこのままでいいかなって最近思ってきた。
- 677 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:49:20 ]
- opAssign定義した構造体の連想配列に新しく要素を格納しようとすると落ちるのは何でなんだぜ?
- 678 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 23:18:34 ]
- 独り言だけど、Win32 とのやり取りが面倒なので、
普通にマルチバイト文字が使えるようにして欲しい。 const char *track_name[] = [mbs"日本語",mbs"日本語"]; みたいな。
- 679 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:05:18 ]
- 今更A関数なんて使わないっしょ。W関数で十分っしょ。とか言われてたなあ。
- 680 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:19:48 ]
- >>678
それはコンパイル時に文字コードが決まるの?それとも実行時?
- 681 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:23:24 ]
- CTFE-ableな変換関数をですね…
const achar* track_name[] = [astring("日本語"), astring("日本語")];
- 682 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 08:59:23 ]
- もうShift-JISはやめようぜ
- 683 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:30:13 ]
- 今更A関数なんて使わないっしょ。W関数で十分っしょ。
- 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 ]
- 配列の末端から取り出すのって皆さんどうやってますか?
|

|