D言語 Part26
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2010/12/28(火) 10:49:05■前スレ
http://hibari.2ch.net/test/read.cgi/tech/1281826764/
■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)
■コンパイラ
http://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
http://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
http://www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)
■参考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/candcpp2d2 (C/C++に疲れた人のD言語2.0)
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)
ttp://dusers.dip.jp (D言語友の会)
ttp://www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)
0809デフォルトの名無しさん
2011/04/09(土) 02:44:36.44誰かナイスなGC実装してくれよ
0810デフォルトの名無しさん
2011/04/09(土) 03:02:25.370811デフォルトの名無しさん
2011/04/09(土) 03:20:37.89ぶっちゃけるとネイティブでかつランタイムに大きな負担をかけずに
JavaレベルのGCを搭載するのはかなり厳しい(実際そんなGC見た事無い)
コンパイラを弄ってランタイムとの関係をもっと密にすれば行けるかもしれないけど
そうするとJavaみたいに環境の差を吸収する基盤のないD言語だとそこで死ぬ
勿論タスクを分解して,処理の並列度を上げるという逃げ道はあるけども
region inference的なものを入れれるのであれば新しい道が開ける可能性もあるが
どこまで実用で使えるのか分からんしなぁ
0812デフォルトの名無しさん
2011/04/09(土) 03:42:49.04immutableの仲間が増えそうな気がするな
fixed(char *) c = malloc(10);
char *d = new char[10]; //movable
c = d; // error!
d = c; // ok
0813デフォルトの名無しさん
2011/04/09(土) 04:16:51.30C#はそんなようなトリックを使ってるんだっけ?
0814デフォルトの名無しさん
2011/04/09(土) 04:36:14.83>>812はそうではなくて、D言語風に、素のポインタはいつの間にか移動するポインタ、
fixedを付けると移動しないポインタ、ぐらいのつもりで書いた。細かいことは考えてない。
今思ったんだがポインタ演算中に別スレッドでgc走ってポインタが移動すると結果が狂うんじゃ……
0815デフォルトの名無しさん
2011/04/09(土) 08:45:26.93ソースの場所おしえてくれ〜
0816デフォルトの名無しさん
2011/04/09(土) 09:49:33.49interface A{}
class foo{}
class bar: foo , A{}
class baz: foo, A {}
があって
foo[] array
に、fooとbarとbazが混在してるとして
arrayのうちinterface Aを継承してるものをピックアップなんてできないよね?
書いてるうちに、出来るわけねーじゃんって思ったけど一応質問してみる・・・
0817デフォルトの名無しさん
2011/04/09(土) 10:29:58.530818デフォルトの名無しさん
2011/04/09(土) 10:55:09.91Cとのインターフェイスでもこの辺りや文字列でイラっとくることがある
0819デフォルトの名無しさん
2011/04/09(土) 12:16:41.32仮想マシンもないのにGCにごりごり依存してる標準ライブラリの存在がネック
だとすると・・・ピコーン
alias std!FooGC std;
0820デフォルトの名無しさん
2011/04/09(土) 12:19:22.67std!barGC.stdlib.free(p);
('A`)
0821デフォルトの名無しさん
2011/04/09(土) 12:19:37.15出来る
0822デフォルトの名無しさん
2011/04/09(土) 13:34:50.45SDL\SDL_audio.d(45): C-style function pointer and pointer to array syntax is dep
recated. Use 'function' to declare function pointers
SDL\SDL_audio.d(77): C-style function pointer and pointer to array syntax is dep
recated. Use 'function' to declare function pointers
SDL\SDL_rwops.d(31): C-style function pointer and pointer to array syntax is dep
recated. Use 'function' to declare function pointers
0823デフォルトの名無しさん
2011/04/09(土) 13:56:39.00int (*fp)(int, int); //C-Style
↓
int function(int, int) fp; //D-Style
0824デフォルトの名無しさん
2011/04/09(土) 14:09:50.10main() の頭でDLL初期化が必要なので注意
DerelictSDL.load(); // SDLのそれぞれのDLLに対してこういう初期化文を追加
0825デフォルトの名無しさん
2011/04/09(土) 14:53:10.390826デフォルトの名無しさん
2011/04/09(土) 15:39:35.07thx!
とりあえず>>823の変換をちまちまやってみるが
うまい正規表現とかないですか
おとなしくDerelictSDLにしといたほうがいいですか
0827デフォルトの名無しさん
2011/04/09(土) 15:43:51.460828デフォルトの名無しさん
2011/04/09(土) 15:46:20.24bitって廃止になったんじゃなかったか
DerelictSDLしてくる
0829デフォルトの名無しさん
2011/04/09(土) 16:16:02.17ちょっと前にURL載ってるけどここのじゃじゃダメなん?
日付見る限りCスタイルの関数宣言とかbit使ってるってことなさそうだが……
0830デフォルトの名無しさん
2011/04/09(土) 16:28:59.65継承関連はクラスでどうぞ。
0831デフォルトの名無しさん
2011/04/09(土) 19:09:39.90Cとのインターフェースで使う構造体で初期値が固定なものがあって
それを使うたびに自前で毎回全メンバーに決まった値入れたり
initXXX()みたいな関数呼び出したりするのが自明すぎだし書き忘れたらバグの元だしで嫌なんだ
initを使えれば見た目もすっきりしていいんだけど・・・
0832デフォルトの名無しさん
2011/04/09(土) 19:25:35.91とかするとS.init.iは10になった気がするんだけど、使えそう?
0833デフォルトの名無しさん
2011/04/09(土) 20:00:57.47勉強のためにほかの人が書いたプログラムを写経しようと思ってます
初心者でも理解できるような物があれば教えてください
0834デフォルトの名無しさん
2011/04/09(土) 20:43:25.94�dほんとだできますた
0835デフォルトの名無しさん
2011/04/09(土) 21:39:09.69それホントに出来た?
自分は出来なかった・・・。
例えばこんな。
struct Hoge
{
int a = 30;
unittest
{
static assert(Hoge.a.init == 30); // 0 == 30 となり失敗する
}
}
ttp://www.kmonos.net/alang/d/2.0/property.html#init
には書いてあるけど、あるときを境にこれが出来なくなったと理解してる。
いつかの更新履歴に書いてあったような・・・。
0836835
2011/04/09(土) 21:41:55.63できたー!サンクス!
0837デフォルトの名無しさん
2011/04/09(土) 22:08:28.85D公式のトップにあるやつとか?
ただ、もしあなたがプログラミング自体の初心者なら、別の言語から始めることをお勧めする。(とりあえずjavaでいい)
0838デフォルトの名無しさん
2011/04/09(土) 22:09:00.89http://ideone.com/ggfoA
('A`)
0839デフォルトの名無しさん
2011/04/09(土) 22:17:15.950840デフォルトの名無しさん
2011/04/09(土) 22:21:26.230841デフォルトの名無しさん
2011/04/09(土) 22:36:24.84(゚∀゚)!
0842デフォルトの名無しさん
2011/04/09(土) 23:09:05.260843デフォルトの名無しさん
2011/04/09(土) 23:17:48.860844デフォルトの名無しさん
2011/04/10(日) 00:06:23.65ttp://twitter.com/nalto32/status/56624705855176704
0845デフォルトの名無しさん
2011/04/10(日) 10:15:34.11把握
0846デフォルトの名無しさん
2011/04/10(日) 12:08:58.76FU○K
0847デフォルトの名無しさん
2011/04/10(日) 12:12:03.79Locale周りとか…dwt2使ってて国別のリソース取るところではたと困ったし
0848デフォルトの名無しさん
2011/04/10(日) 13:06:48.26http://ideone.com/em1tO
0849デフォルトの名無しさん
2011/04/10(日) 17:14:21.43ttp://twitter.com/mono_shoo/statuses/56567451500023808
0850デフォルトの名無しさん
2011/04/10(日) 17:36:51.97とかお前ら人数に感動しすぎww
0851デフォルトの名無しさん
2011/04/10(日) 17:39:54.89こんなこと出来たのかw
テンプレートとか苦手なロートルだけどこういうの見るとやってみたくなるな
0852デフォルトの名無しさん
2011/04/10(日) 18:13:51.390853デフォルトの名無しさん
2011/04/10(日) 18:51:47.780854デフォルトの名無しさん
2011/04/10(日) 19:31:20.550855デフォルトの名無しさん
2011/04/10(日) 19:44:21.19破壊的なのかはしらんが
0856デフォルトの名無しさん
2011/04/11(月) 02:40:00.43最新dmdにスリルを求めてしまう事の次にD言語使ってる感が出る。
0857デフォルトの名無しさん
2011/04/11(月) 08:09:51.69rubyとかのスクリプト言語のもたいていクソなんだが
メインの実行が遅いので、メインとGCの比率で見ると目立たないだけ
0858デフォルトの名無しさん
2011/04/11(月) 08:10:57.23>>807
0859デフォルトの名無しさん
2011/04/11(月) 16:48:24.40GCも何とかなるなら何とかしたい。
0860デフォルトの名無しさん
2011/04/11(月) 17:08:40.34t = s; // ok, t.a is now 3 -> ウソ、cannot modify const (dmd2.052 win)
ドキュメントの方がおかしいような気がしなくもないがどうなんだろう
0861デフォルトの名無しさん
2011/04/11(月) 20:42:09.420862デフォルトの名無しさん
2011/04/11(月) 20:45:40.300863デフォルトの名無しさん
2011/04/11(月) 21:13:27.77そう、貴様は同じ場所に留まって、もがき続けるしかないのだ!
0864デフォルトの名無しさん
2011/04/11(月) 22:02:27.300865デフォルトの名無しさん
2011/04/12(火) 01:50:14.400866デフォルトの名無しさん
2011/04/12(火) 02:08:02.140867デフォルトの名無しさん
2011/04/12(火) 04:28:06.83scope class を、scope class のメンバ変数としても存在出来るようにするんだ。
で、scope class はデストラクタ終了後に自分の scope class メンバ変数を delete する。
ちょっと突破口の香りしね?
0868デフォルトの名無しさん
2011/04/12(火) 07:57:51.76光魔術に対する突破口?
0869デフォルトの名無しさん
2011/04/12(火) 12:49:44.820870デフォルトの名無しさん
2011/04/12(火) 13:14:39.46if (nodeSrc == node.parent
|| nodeRes == node.parent
|| nodeExt == node.parent) { 〜以下省略
↓みたいに書けそうな気がするけどなにか簡単な書き方ないかな?
if (node.parent in [nodeSrc,nodeRes,nodeExt]) { 〜以下省略
0871デフォルトの名無しさん
2011/04/12(火) 14:16:10.250872デフォルトの名無しさん
2011/04/12(火) 14:43:23.48こんな感じ?
0873デフォルトの名無しさん
2011/04/12(火) 15:05:48.32void*[T] include(T)(T[] a...)
{
void*[T] bar;
foreach(o;a)
{
bar[o] = null;
}
return bar;
}
を定義しといて
if(node.parent in include(nodeSrc,nodeRes,nodeExt) ){〜以下略
0874デフォルトの名無しさん
2011/04/12(火) 17:10:33.22なかなか。ありがと
0875デフォルトの名無しさん
2011/04/12(火) 20:19:12.98〜前略〜
int i;
int a[256];
char b[1024];
〜中略〜
int *ap = a;
char *abp = (char *)ap;
for(i = 0; i < 1024; i++) abp[i] = b[i];
〜後略〜
とか、
struct test_s{
int a;
char b[16];
};
〜中略〜
test_s a;
char b[20];
〜中略〜
test_s *ap = a;
char *abp = (char *)ap;
for(i = 0; i < 20; i++) abp[i] = b[i];
〜後略〜
とか、できますか?
0876デフォルトの名無しさん
2011/04/12(火) 21:35:03.910877デフォルトの名無しさん
2011/04/12(火) 21:37:45.400878デフォルトの名無しさん
2011/04/12(火) 21:43:17.910879デフォルトの名無しさん
2011/04/12(火) 21:55:15.65int[256] a;
char[1024] b;
(cast(char*)a.ptr)[0 .. 1024] = b[];
test_s a;
char[20] b;
(cast(char*)&a)[0 .. 20] = b[];
0880デフォルトの名無しさん
2011/04/12(火) 21:57:16.660881デフォルトの名無しさん
2011/04/12(火) 21:59:40.10おぉ、これはずいぶん簡潔に・・・・。
こうすれば出来るんですね。ありがとうございます。
0882デフォルトの名無しさん
2011/04/12(火) 22:07:38.87char[1024] b;
(cast(char[])a)[] = b[];
これでもいける
0883デフォルトの名無しさん
2011/04/12(火) 22:30:46.95GUI部分とメイン処理を別スレッドでやるのに、参考になるもの何処かにないでしょうか?
0884デフォルトの名無しさん
2011/04/13(水) 00:16:37.15引数をまるまるスルーパスすることってできます?
0885デフォルトの名無しさん
2011/04/13(水) 01:29:03.82C#(というか.net)で、やりたい事書いているサンプル探して、それと同じ様な
クラスやメソッドがDFLにないか、探してみるといいよ
enticeのヘルプにクラスの一覧みたいなのがあったと思う
0886デフォルトの名無しさん
2011/04/13(水) 01:34:36.08サンプルじゃないけどココがひっかかる所かもしれない(コメント欄)
ttp://d.hatena.ne.jp/haru-s/20090716/1247730305
0887デフォルトの名無しさん
2011/04/13(水) 02:09:41.01void f(T...)(T args){ g(t); }
void g(T...)(T args){}
0888デフォルトの名無しさん
2011/04/13(水) 02:16:04.24http://bit.ly/hlAaZG どうぞ。
0889デフォルトの名無しさん
2011/04/13(水) 02:43:09.07C/Dスタイル可変個引数だと出来そうにない。
代わりに、テンプレートのタプルパラメタを使えば出来るはず。(>>887と同じ方法)
void foo(...) を void foo(T...)(T t)に変えて、tをそのまま渡す。(渡す先はC/Dスタイル可変個引数でもおkなはず)
型安全可変個引数だと、受け取った配列(またはクラス)をそのまま渡せばよさそうだ。
0890デフォルトの名無しさん
2011/04/13(水) 03:09:43.10を使うと、正しく表示されないのが困ったもんだ。何でUTF-8なんか使うんだ。
0892デフォルトの名無しさん
2011/04/13(水) 03:36:25.520893デフォルトの名無しさん
2011/04/13(水) 04:20:56.190894デフォルトの名無しさん
2011/04/13(水) 06:53:46.58make長げー・・・。
0895デフォルトの名無しさん
2011/04/13(水) 07:01:37.880896デフォルトの名無しさん
2011/04/13(水) 07:48:38.19コマンドプロンプトの文字コードは変えられる
0897デフォルトの名無しさん
2011/04/13(水) 08:08:21.50多分、流行ってない。
けど、思ったよりだいぶマトモな仕様だし、
有名なソフトに使われればその日も近いかも。
0898デフォルトの名無しさん
2011/04/13(水) 08:09:10.54内部UTF-8と決め打って、なおかつ他の箇所では適切に(なるまで時間かかった気もするけど)変換してるんだから
0899デフォルトの名無しさん
2011/04/13(水) 08:35:56.800900デフォルトの名無しさん
2011/04/13(水) 11:10:31.87http://www.kmonos.net/alang/d/2.0/phobos/std_encoding.html
http://site.icu-project.org/
・・・もしかしたら出来るかもしれない。
0901デフォルトの名無しさん
2011/04/13(水) 13:36:09.00頼んだぞ
0902デフォルトの名無しさん
2011/04/13(水) 13:38:02.950903デフォルトの名無しさん
2011/04/13(水) 14:37:28.23パイプであれこれ柔軟にできるんじゃないかと思うが
探してもうまく見つけられなかった
0904デフォルトの名無しさん
2011/04/13(水) 16:17:38.710905デフォルトの名無しさん
2011/04/13(水) 17:56:48.000906デフォルトの名無しさん
2011/04/13(水) 18:03:36.460907デフォルトの名無しさん
2011/04/13(水) 18:52:02.070908デフォルトの名無しさん
2011/04/13(水) 19:06:14.63レス数が900を超えています。1000を超えると表示できなくなるよ。