D言語 Part18
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/04/14(月) 15:16:22過去スレは >>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)
0002デフォルトの名無しさん
2008/04/14(月) 15:17:08Part17 http://pc11.2ch.net/test/read.cgi/tech/1202623572/
Part16 http://pc11.2ch.net/test/read.cgi/tech/1195394435/
Part15 http://pc11.2ch.net/test/read.cgi/tech/1191582990/
Part14 http://pc11.2ch.net/test/read.cgi/tech/1184807424/
Part13 http://pc11.2ch.net/test/read.cgi/tech/1177499924/
Part12 http://pc11.2ch.net/test/read.cgi/tech/1171037394/
Part11 http://pc10.2ch.net/test/read.cgi/tech/1165621441/
Part10 http://pc8.2ch.net/test/read.cgi/tech/1158013550/
Part 9 http://pc8.2ch.net/test/read.cgi/tech/1146656260/
Part 8 http://pc8.2ch.net/test/read.cgi/tech/1137068104/
Part 7 http://pc8.2ch.net/test/read.cgi/tech/1122912733/
Part 6 http://pc8.2ch.net/test/read.cgi/tech/1109933426/
Part 5 http://pc5.2ch.net/test/read.cgi/tech/1102785854/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1091185216/
Part 3 http://pc5.2ch.net/test/read.cgi/tech/1079068715/
Part 2 http://f3.aaacafe.ne.jp/~null/cache/1079280501.html
Part 1 http://pc5.2ch.net/tech/kako/1003/10036/1003674814.html
0003デフォルトの名無しさん
2008/04/14(月) 15:17:57D言語なら俺に聞け
http://pc11.2ch.net/test/read.cgi/tech/1108172110/
D言語を広めるスレ
http://pc11.2ch.net/test/read.cgi/tech/1175432606/
D言語は多分コケると思っている人の数→
http://pc11.2ch.net/test/read.cgi/tech/1136288019/
【次世代言語】D言語でOSを作ろう【Monaの移植?】
http://pc11.2ch.net/test/read.cgi/tech/1128794438/
バイナリをゲロる言語の魅力って何?
http://pc11.2ch.net/test/read.cgi/tech/1160869311/
その他リンク
【Java/C/PHP/Perl/Ruby/Python/TeX】Eclipse M22
http://pc11.2ch.net/test/read.cgi/tech/1168166588/
eclipseってそんなに良いか?【エクリプス】
http://pc11.2ch.net/test/read.cgi/tech/1099300344/
統合開発環境Eclipseプラグイン開発QA
http://pc11.2ch.net/test/read.cgi/tech/1081517094/
"Code of the Nerds" Digital Mars C/C++
http://pc11.2ch.net/test/read.cgi/tech/1044210976/
0004デフォルトの名無しさん
2008/04/14(月) 18:35:410005デフォルトの名無しさん
2008/04/14(月) 20:45:440006デフォルトの名無しさん
2008/04/14(月) 21:50:240007デフォルトの名無しさん
2008/04/14(月) 22:17:090008デフォルトの名無しさん
2008/04/15(火) 00:03:120009デフォルトの名無しさん
2008/04/15(火) 00:56:080010デフォルトの名無しさん
2008/04/15(火) 01:19:530011デフォルトの名無しさん
2008/04/15(火) 06:55:12template Res(int N, O)
{
res!(N) << O.toString();
in { assert(O >> N); }
invariant O = N;
enum O = N;
throw new O(">>" ~ N.toString());
}
mixin Res(1, 乙);
0012デフォルトの名無しさん
2008/04/15(火) 09:31:07それはそうと>>1乙。
0013デフォルトの名無しさん
2008/04/15(火) 12:55:41あったよ
0014デフォルトの名無しさん
2008/04/15(火) 17:45:58おつゆ
0015デフォルトの名無しさん
2008/04/15(火) 23:08:170016デフォルトの名無しさん
2008/04/16(水) 09:57:50/´ ̄`ヽ /: : : \_____/: : : : ヽ、
,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
/: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
,. -──「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
/: :.,.-ァ: : : |: : : : : : : : : :\: : : : :: : : :ヽ \ /: : : :/
 ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i / /: : : : :/
/: : ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/ /: : : : :/ 、
. /: : / . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : | /: : : : :/ |\
/: : ィ: : : : :.i: : | \!___/ ヽ:: : : : : : :\|:.:.:.:/:! ,': : : : / |: : \
/ / !: : : : :.ト‐|- ヽ \: : : : : l::::__:' :/ i: : : : :{ |: : : :.ヽ
l/ |: : :!: : .l: :| \: : : l´r. Y {: : : : :丶_______.ノ: : : : : :}
l: : :l: : :ト、| 、___,ィ ヽ: :| ゝ ノ '.: : : : : : : : : : : : : : : : : : : : : : /
|: : :ト、: |: :ヽ ___,彡 ´ ̄´ ヽl-‐' \: : : : : : : : : : : : : : : : : : イ
!: :从ヽ!ヽ.ハ=≠' , ///// ///u /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
V ヽ| }/// r‐'⌒ヽ イ〉、
ヽ、______ー‐‐' ィ´ /:/:7rt‐---、 こ、これはポニーテールじゃなくて
ィ幵ノ ./:/:./:.! !: : : : :!`ヽ >1乙なんだからね!
0017デフォルトの名無しさん
2008/04/16(水) 12:32:030018デフォルトの名無しさん
2008/04/16(水) 17:24:480019デフォルトの名無しさん
2008/04/16(水) 17:37:190020デフォルトの名無しさん
2008/04/17(木) 11:13:17ttp://codepad.org/I0zhbCCh
Line 3: no identifier for declarator res!(N)
Line 3: semicolon expected, not '<<'
Line 3: Declaration expected, not '<<'
Line 4: Declaration expected, not 'in'
Line 5: statement expected to be { }, not O
Line 6: enum declaration is invalid
Line 6: Declaration expected, not '='
Line 7: Declaration expected, not 'throw'
Line 8: unrecognized declaration
エラー大杉
0021デフォルトの名無しさん
2008/04/17(木) 11:14:590022デフォルトの名無しさん
2008/04/18(金) 12:50:17一回でコンパイルが通るプログラムを書くことが全然できない件についてorz
複雑すぎるよう
0023デフォルトの名無しさん
2008/04/18(金) 13:15:53じゃあどうするのかと言われたら困るが
0024デフォルトの名無しさん
2008/04/18(金) 16:00:570025デフォルトの名無しさん
2008/04/18(金) 16:42:16http://lists.puremagic.com/pipermail/digitalmars-d/2008-April/036205.html
0026デフォルトの名無しさん
2008/04/18(金) 17:04:01mutable/const/invariantのどれなのか
把握していないといけないのが辛すぎる
関数の引数は全部constでいいんじゃないの?
0027デフォルトの名無しさん
2008/04/18(金) 20:23:10> mutable/const/invariantのどれなのか
> 把握していないといけないのが辛すぎる
うげぇなんだそれ。作者はユーザインターフェースってもんを一から勉強しろよ
0028デフォルトの名無しさん
2008/04/18(金) 21:09:090029デフォルトの名無しさん
2008/04/18(金) 21:11:32DMDと一緒に配布されてるphobosがコンパイル通らなかったりするし。
0030デフォルトの名無しさん
2008/04/18(金) 21:15:350031デフォルトの名無しさん
2008/04/18(金) 22:27:47これが信者脳ってやつか
0032デフォルトの名無しさん
2008/04/18(金) 22:58:00>把握してないと
型のある言語だったら大抵そうじゃね?
const/invariantとか別れてるのはDくらいかもだけど
0033デフォルトの名無しさん
2008/04/18(金) 23:21:080034デフォルトの名無しさん
2008/04/18(金) 23:21:21動的型付け言語も仕様上型のない言語も、不適切な型や値を突っ込めば
実行時にコケるか結果がおかしくなるわけだから、なんにしろ確認は必須だよねえ。
とはいえ、言語の性能ってのはそれ自体の性能だけじゃなくて、実際にはエディタや
周辺環境の性能も関わってくるから、そのへん不足してるせいで>>26ってことなら、
まあD言語(の言語自身か周辺環境)が悪い、といっても間違いじゃないだろうけど。
0035デフォルトの名無しさん
2008/04/18(金) 23:22:51003622==26
2008/04/19(土) 00:43:36>>29 phobos捨てるべきなのか?
>>33 伝説のIDEがあるならそれで一応満足するのだが
>>32.34 最大の問題は関数の利用者が関数のために
明示的にdeep copyしないといけないところだと思えてきたよ
都合があるのは関数側なのにね
必要なら(.idupの代わりに)関数呼び出し直後に関数内で使う前にdeep copyして欲しい
0037デフォルトの名無しさん
2008/04/19(土) 00:54:15氏ねよカス(笑)
0038デフォルトの名無しさん
2008/04/19(土) 00:58:310039デフォルトの名無しさん
2008/04/19(土) 01:24:260040デフォルトの名無しさん
2008/04/19(土) 08:00:130041デフォルトの名無しさん
2008/04/19(土) 10:54:42いいよな
俺はそうしてる
0042デフォルトの名無しさん
2008/04/19(土) 11:43:45http://www.kmonos.net/alang/d/2.0/const.html にあるように
エイリアシングの問題があるから、invariant引数は必要なところには
必要だと思う。
だがエイリアシングもクソもなく新しいinvariant文字列を返すような
std.stringの多くの関数にはどう考えても不要だと思う。
string,wstring,dstringの定義がphobosのObjectの項に書いてなかったりするし、
stringをinvariantにしたの忘れてるんじゃないかな。
0043デフォルトの名無しさん
2008/04/19(土) 11:56:03そこで例えばこういうふうにするのがいいと思う。
string[] split(const(char)[] str) {
return split(str.idup);
}
string[] split(invariant(char)[] str) {
return /*空白で区切ってスライスを返す*/;
}
もちろん例えばtolowerならinvariantのは定義せず、constだけでいい。
0044デフォルトの名無しさん
2008/04/19(土) 11:59:57引数をinvariantにすればtolowerは純粋関数になるから、
ある種の最適化ができる可能性があるよね。
そういう意味でこちらもやはり両方定義すべき。
0045デフォルトの名無しさん
2008/04/19(土) 12:08:46invariantとかconstとかは純粋関数かどうかには関係なくね?
(引数以外の環境に依存せず同じ結果になるから。)
マルチスレッド対応とかはtolowerでやることじゃないだろうし。。
0046デフォルトの名無しさん
2008/04/19(土) 19:52:35それいいな
でもそうなるとconst(char)[]版を書くの面倒
invariantにmutableを渡したらdeep ocpyするならこんな感じ
//alias invariant(char)[] string;
string[] split(string str);
string s = "foo";
char[] t = "bar";
string[] u = split(s);
string[] v = split(t); // deep copy implicitly
0047デフォルトの名無しさん
2008/04/19(土) 19:57:12転送する引数が一つならまだしも複数になったら
自分で転送関数を書くのはやだぞ
0048デフォルトの名無しさん
2008/04/19(土) 20:58:02プリミティブ型の配列ならそれでもいいけど、
オブジェクトの配列だったりすると何か問題が起こりそうな気が
0049デフォルトの名無しさん
2008/04/19(土) 21:23:080050デフォルトの名無しさん
2008/04/19(土) 21:28:100051デフォルトの名無しさん
2008/04/19(土) 21:57:26static assert(is(void function()==function)); // static assert is false
なぜさ?
0052デフォルトの名無しさん
2008/04/19(土) 22:00:16void function()は関数ポインタ型
005351
2008/04/19(土) 22:52:43アホな俺にも
static assert(is(void delegate()==delegate)); //ok
static assert(is(void function()==function)); // static assert is false
この違いが分かるように教えてくれまいか
0054デフォルトの名無しさん
2008/04/19(土) 23:02:57is(T==delegate) -- Tがデリゲート型
is(T==function) -- Tが関数型
void delegate() -- デリゲート型
void function() -- 関数ポインタ型
void f(){}
typeof(f) -- 関数型
typeof(&f) -- 関数ポインタ型
おk?
005551
2008/04/19(土) 23:21:10static assert(is(typeof(void function())==function)); //ok
大変勉強になりました。
005651
2008/04/19(土) 23:25:55void func(){}
static assert(is(typeof(func)==function)); //ok
ありがとうございました。
0057デフォルトの名無しさん
2008/04/20(日) 00:30:380058デフォルトの名無しさん
2008/04/20(日) 00:35:25typeidで確認しろwww
0059デフォルトの名無しさん
2008/04/20(日) 11:54:17void f(const(A) a){f(cast(invariant(A))a);} // ???
void f(invariant(A) a){}
配列のときは.idupでいいけど配列じゃないときはどうやってclone作ればいいの?
castしちゃまずいよね?
自前で.idup相当の処理を書かないといけないのかな
class A{invariant(A) iclone()const{return new invariant(A);}}
void f(invariant(A) a){}
void f(const(A) a){f(a.iclone());}
0060デフォルトの名無しさん
2008/04/20(日) 12:07:10.dupとcast(invariant(TYPE)[])でいいのかな?
invariant(A)[] g(const(A)[] a){
//return a.idup; // error
return cast(invariant(A)[])a.dup;
}
0061デフォルトの名無しさん
2008/04/20(日) 12:09:27いや、よくない。
const(A)[]であるaの参照がどこかにある限り、
a.dupの要素のメンバは変更されうるから、
何らかの方法でAをディープコピーしないといけない。
0062デフォルトの名無しさん
2008/04/20(日) 13:43:530063デフォルトの名無しさん
2008/04/20(日) 14:04:39結局>>60な感じだったとおもったが
0064デフォルトの名無しさん
2008/04/20(日) 14:36:43まさか。全く同じ内容の配列を複製するだけだよ。
>>63
assumeUniqueだよね。
これはプログラマの良心によってinvariant性を担保するもので、
>>60のような場合に使うのは不味いね。
0065デフォルトの名無しさん
2008/04/20(日) 15:13:19自分に合ったものを選んで使えば良いときいたんですけど本当ですか?
006660
2008/04/20(日) 16:55:53まとめるとこんな感じでしょうか
class A{
int m;
this(int m){mem=m;}
const A opClone(){return new A(mem);}
const invariant(A) opInvariantClone(){return new invariant(A)(mem);}
}
void f(A x);
void g(const(A) x);
void h(invariant(A) x);
006760
2008/04/20(日) 16:56:27f(new const(A));//opClone()が暗黙的に呼ばれる
f(new invariant(A));//opClone()が暗黙的に呼ばれる
g(new A);
g(new const(A));
g(new invariant(A));
h(new A);//opInvariantClone()が暗黙的に呼ばれる
h(new const(A));//opInvariantClone()が暗黙的に呼ばれる
h(new invariant(A));
006860
2008/04/20(日) 16:56:57// is as
//A x = (new invariant(A)).opClone();
//invariant(A) x = new A;
// is as
//invariant(A) x = (new A).opInvariantClone();
//これはうまくいくかどうかよくわからない
//invariant(A)[] copy(const(A)[] ar){
// return ar;
//}
// is as
//invariant(A)[] copy(const(A)[] ar){
// invariant(A)[] ret;
// foreach (e; ar) t ~= e.opInvariantClone();
// return ret;
//}
006960
2008/04/20(日) 16:57:23opInvariantCloneが未定義のときにmutable/const -> invariant
に変換しようとしたときは今までどおりエラーになって
参照型メンバのディープコピー忘れを防止・・・とか
なんていうかGCばんざい
__EOF__
0070デフォルトの名無しさん
2008/04/20(日) 17:02:490071デフォルトの名無しさん
2008/04/23(水) 02:40:09{ ... }
この場合の private みたいに親クラスに属性つけるとどうなるんだっけ?
何も変わってないような気がするんだが。
export属性つけると怒られるし(dmd1.028に)。
007271
2008/04/23(水) 03:30:19お騒がせしました。
0073デフォルトの名無しさん
2008/04/24(木) 16:59:420074デフォルトの名無しさん
2008/04/24(木) 17:23:060075デフォルトの名無しさん
2008/04/24(木) 19:50:570076デフォルトの名無しさん
2008/04/24(木) 21:21:550077デフォルトの名無しさん
2008/04/24(木) 21:24:420078デフォルトの名無しさん
2008/04/24(木) 21:26:220079デフォルトの名無しさん
2008/04/24(木) 21:30:410080デフォルトの名無しさん
2008/04/24(木) 21:51:050081デフォルトの名無しさん
2008/04/25(金) 00:17:30Version D 2.013 Apr 22, 2008
0082デフォルトの名無しさん
2008/04/25(金) 01:24:24え?アレ?
密かに期待してたんだが、、俺だけだった?
0083デフォルトの名無しさん
2008/04/25(金) 01:51:11・switchのcaseはconstかinvariantな整数型変数なら定数じゃなくともOK
・HTMLファイルにD言語のソース埋め込める機能は黒歴史
・pureとnothrowは書くだけ書けるようにしておいたけどまだ何も機能しないよ
・synchronized文あるからvolatile文は非推奨
・__thread記憶クラス実装したけど、言語上での表現はたぶん別の形になるよ
・関数オーバーロードで、派生クラスはより近い祖先の引数型にマッチするようになったよ
あたりが主な変更?
opCastといいopDotといい謎な仕様だと思った。
HTML埋め込みは、Dコンパイラにやらせるべき仕事じゃなかったんだろうな、と思った。
0084デフォルトの名無しさん
2008/04/25(金) 02:43:050085デフォルトの名無しさん
2008/04/25(金) 04:47:03switchのcaseはさりげなく面白い変更だな。
同じ動作だが基準がインスタンスごとに変えられるようになるのかな?
0086デフォルトの名無しさん
2008/04/25(金) 06:25:570087デフォルトの名無しさん
2008/04/25(金) 08:45:43気づいてたら教えてくらさい
0088デフォルトの名無しさん
2008/04/25(金) 13:23:23// main.d
import test;
void main(){
error();
}
// test.d
import std.stdio;
void error(string file = __FILE__, int line = __LINE__){
writefln("Error: %s(%d)", file, line);
}
> Error: main.d(4)
おお、これでまともにUnitTest用ライブラリが書ける。
0089デフォルトの名無しさん
2008/04/25(金) 13:43:07switchの条件に文字列指定は前から出来るけど・・・
>C/C++と違い、 文字列もswitch文で使用できます。
って書いてるし。
0090デフォルトの名無しさん
2008/04/25(金) 13:47:28>>86 はそういう意味じゃないだろ
>>83 の「switchのcaseはconstかinvariantな整数型変数なら定数じゃなくともOK」に対して,「const/invariantな文字列をcase文に使えたら面白い」という話だろ
0091デフォルトの名無しさん
2008/04/25(金) 14:21:510092デフォルトの名無しさん
2008/04/27(日) 07:31:21スタックにあるconstな変数は受け付けますが、
ヒープにある可能性のあるものは全部NGかなという感じです。
関数内(ネスト関数の外側関数含む)でconstな変数は受け付けますが、
クラスフィールド上でconstなものは受け付けません。
0093デフォルトの名無しさん
2008/04/27(日) 14:02:04英語か日本語の本で
0094デフォルトの名無しさん
2008/04/27(日) 14:13:240095デフォルトの名無しさん
2008/04/27(日) 14:19:32日本語の本で一番新しいのは『D言語パーフェクトガイド』。ただし古くて何の役にも立たない。
英語で最近出たのは『Learn to Tango with D』。まだ読んでないから内容の是非はわからない。
0096デフォルトの名無しさん
2008/04/27(日) 14:21:23ついていくには本なんて役に立たない
009793
2008/04/27(日) 14:24:10amazonで買った
0098デフォルトの名無しさん
2008/04/27(日) 15:08:480099デフォルトの名無しさん
2008/04/27(日) 15:10:25D 2.0 に興味があるなら本は無駄だと言わざるを得ない
0100デフォルトの名無しさん
2008/04/27(日) 15:30:260101デフォルトの名無しさん
2008/04/27(日) 15:31:24No.
単一の型にしかforwardできないから何の役に立つのかさっぱり分からない。
0102デフォルトの名無しさん
2008/04/27(日) 15:38:18が
o.opDot!("m")
にでもなれば、いろいろ面白そうなのにな。
0103デフォルトの名無しさん
2008/04/27(日) 17:24:46なんにつかえるかわからんけど、おもしろそう
0104デフォルトの名無しさん
2008/04/27(日) 17:26:07関数の引数のstaticが来たらopDot("m")でいい気ガス。
0105デフォルトの名無しさん
2008/04/27(日) 18:05:18ActiveXのレイトバンディングとかに使えるかも。
0106デフォルトの名無しさん
2008/04/28(月) 03:29:47下記のような……
class Foo {
void fun(int n);
...
}
↓
void fun(Foo[] foos, int n) {
foreach(foo; foos) fun(n);
}
...
0107デフォルトの名無しさん
2008/04/28(月) 18:42:570108デフォルトの名無しさん
2008/04/28(月) 19:25:13それらを関数かどうか判定して、それにあった関数定義を生成して…、
という形になるんじゃないかな。
0109デフォルトの名無しさん
2008/04/28(月) 20:29:22>Hidden methods now get a compile time warning rather than a runtime one.
これうざす。
親クラスの関数をFinalにして回避してるんだけど
そもそもおれのクラスの設計がいけてないってことなのかなぁ・・・
0110デフォルトの名無しさん
2008/04/28(月) 22:06:04警告メッセージに「オーバーライドしてんのにoverrideついてないよ」
って書いてあるから、素直にoverrideつけりゃいいんじゃなかろうか。
0111デフォルトの名無しさん
2008/04/29(火) 06:18:29このケースのことじゃなかろうか
class A {
int foo(int a)
}
class B : A {
int foo(int a,int b);
}
名前が一緒で引数の取り方が違う場合
0112デフォルトの名無しさん
2008/04/29(火) 17:04:35勘違いしてたわ。
なるほどオーバーロードの関係ね。
http://www.kmonos.net/alang/d/2.0/function.html で、
オーバーロードの解決時に基底クラスの関数を含めるにはalias使えとあるから、
class A{
int f(){ return 3; }
}
class B:A{
alias A.f f;
int f(int x){ return x*x;}
}
たぶんこんな感じでOK
0113デフォルトの名無しさん
2008/04/29(火) 21:44:13わっ本当だ!
ありがとうございます!
aliasの役割っておおいですね・・・
0114デフォルトの名無しさん
2008/04/29(火) 23:02:51名前を追加するという役割は同じだよ
0115デフォルトの名無しさん
2008/04/30(水) 00:53:51/+D言語でハンガリアン記法どうしようか・・・うーむ+/
0116デフォルトの名無しさん
2008/04/30(水) 02:28:55dHellってdHell2じゃなくて?
無印の方はSDLとほぼ同等だと思ってたが
システムハンガリアンだったらダメ絶対
アプリケーションハンガリアンだったら推奨
http://ameblo.jp/argv/entry-10031517216.html
0117デフォルトの名無しさん
2008/04/30(水) 03:01:330118デフォルトの名無しさん
2008/04/30(水) 11:48:180119デフォルトの名無しさん
2008/04/30(水) 12:21:11Cとかと違って,違う型として扱ってくれるからじゃない?
全て上手く行くかどうか分からないけども
0120デフォルトの名無しさん
2008/04/30(水) 14:57:22ttp://www.radiumsoftware.com/hungarian_notation.html
この例なんかは、安全な文字列型と危険な文字列型を用意すれば解決するようにも思える。
0121デフォルトの名無しさん
2008/04/30(水) 17:29:48別のクラスにするのは大仰すぎて非現実的だからアプリハンガリアンがいいよね」
と言いたいようだけど,ただ視覚に訴えかけるだけじゃなくて
それぞれを暗黙的に変換されないようにするべきだと思う.
typedefがあるD言語では仕組みは簡単だし
実は同じ型だから変換のコストは安いからもってこい
typedef Point LayoutPoint;
typedef Point WindowPoint;
とか
typedef /*unsafe*/string safeString;
とか.
D言語ではアプリハンガリアンでさえいらず型システムに任せられる気がしてきた
0122117
2008/04/30(水) 17:31:07すまん言葉足らずだった
>>119-120が言っている通り
なるべくならコンパイルエラーで検出できるようにした方が間違いが無いだろうし
オーバーロードが出来るから処理も分けやすい
全てのケースで置き換えられるとは言わないけど
大体はtypedefが使えると思う
0123デフォルトの名無しさん
2008/04/30(水) 17:40:460124デフォルトの名無しさん
2008/04/30(水) 18:29:26typedef char mbchar;
alias invariant(mbchar)[] mbstring;
文字列同士の連結に ~ じゃなくて連結関数を使わないといけないのがネックだった
0125デフォルトの名無しさん
2008/04/30(水) 19:42:240126デフォルトの名無しさん
2008/04/30(水) 19:44:23charは既にUTF8って意味を持ってるから、ubyteを基底にするべきだろうね。
0127デフォルトの名無しさん
2008/04/30(水) 20:04:380128デフォルトの名無しさん
2008/04/30(水) 20:21:27あ,ゼロ終端の配列にするからいけないのか thx
>>126
間違えた.元々 ubyte にしてました
0129デフォルトの名無しさん
2008/04/30(水) 20:25:35&演算子が返すのは、配列の参照が保持されている場所のアドレスか、
配列の先頭の要素のアドレス。動的か静的かで挙動が異なる。
0130デフォルトの名無しさん
2008/04/30(水) 21:15:10すまん、dHell2の方だった
アプリケーションハンガリアンってあるのか・・・
システムハンガリアンしか知らなかった・・・thx!!
0131デフォルトの名無しさん
2008/04/30(水) 21:59:30なるほど
0132デフォルトの名無しさん
2008/04/30(水) 22:43:31なるほど、得心しました。
単純にアプリケーションハンガリアンはレビュアーの為でもあるんでそっちまで否定されてるのかと思い込んでました。
0133デフォルトの名無しさん
2008/05/01(木) 07:09:09文字列型はinvariant(char)[]でもう確定なのかな
せめて一段aliasがあればな…
ていうかWindowsでUTF8が(ry
0134デフォルトの名無しさん
2008/05/01(木) 10:37:10なんで、toMBSzとかはchar*を返すんだ?
ubyte*を返すべきなんじゃないか?
0135デフォルトの名無しさん
2008/05/01(木) 13:11:560136デフォルトの名無しさん
2008/05/01(木) 15:05:51winxp で eclipse + descent + dmd 1.028 + dsss 最新版 + ddbg 最新版で
なんとかコーディング → ビルド → デバッガが走るという、IDE の最低限要素を実現出来たばっかり。
で、
import std.stdio;
void main() {
printf("test");
printf("hello, D"); // この行にブレークポイント
}
このコードでブレークポイントの部分で止まったときに
eclipse のコンソールに、標準出力に出力されたであろう test って文字列が出てこない。
出てこさせる方法は無いですか?
0137デフォルトの名無しさん
2008/05/01(木) 15:22:470138デフォルトの名無しさん
2008/05/01(木) 15:26:06std.stdio.flushall();
てのなかったっけ
0139デフォルトの名無しさん
2008/05/01(木) 15:32:06>138
出てこないみたいです。
0140デフォルトの名無しさん
2008/05/01(木) 16:49:44標準出力用のコンソールが、eclipse の外のウィンドウで出てたです。
気がつかなかったー。
0141デフォルトの名無しさん
2008/05/01(木) 17:36:590142デフォルトの名無しさん
2008/05/01(木) 20:25:08その実現する過程をぜひ教えてほしい・・・
0143デフォルトの名無しさん
2008/05/01(木) 22:28:47で、descent を入れました。
http://eclipsewiki.net/eclipse/?D%B8%C0%B8%EC%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
コンパイラが別途必要なのを気がつかなくて入れてなかったので、
あとから dmd と dmc をいれました。ふつうはルートに展開するらしいけど、ルートが嫌だったので、c:\d に展開。
->c:\d\dmd
->c:\d\dm
dsss を入れます。
->c:\d\dsss
ddbg を入れます。
->c:\d\ddbg
パスを設定します。
DMD_HOME=c:\d
PATH=〜〜〜〜;%DMD_HOME%\dmd\bin;%DMD_HOME%\dm\bin;%DMD_HOME%\dsss\bin;%DMD_HOME%ddbg\bin;
コンパイラの設定。
eclipse で ウィンドウ>設定 を開いて、ツリーから、D -> Installed Compilers を選択
追加を押して、Compiler home directory に、dmd を展開したディレクトリ(c:\d\dmd) を設定
すると、他の情報もなんだか良い感じに設定されているので、おもむろに OK
デバッガの設定
http://www.dsource.org/projects/descent/wiki/DebuggingPrograms
0144デフォルトの名無しさん
2008/05/01(木) 22:38:59D のプロジェクトのプロパティを開いて、ツリーから ビルダーを選択
新規ボタンを押して、プログラムを選択して、OK
メインタブーーーーーーーーーーーー
ロケーション:c:\d\dsss\bin\dsss.exe
作業ディレクトリ:${project_loc}
引数: build
更新タブーーーーーーーーー
完了時にリソースを更新をチェック
選択されたりソースを含むプロジェクトを選択
再帰的にサブフォルダーを組み込むをチェック
おもむろに OK
dsss のコンフィグ
D のプロジェクトのディレクトリに、dsss.conf を作成。
[main.d] // ← main() を含むソースファイル
buildflags=-g -Isrc\\ // ← コンパイラに渡すオプション
だいたい、こんなかんじです。
0145デフォルトの名無しさん
2008/05/01(木) 23:44:390146デフォルトの名無しさん
2008/05/02(金) 06:26:21うわ、ありがとう!!
0147デフォルトの名無しさん
2008/05/02(金) 18:23:040148デフォルトの名無しさん
2008/05/02(金) 19:33:180149デフォルトの名無しさん
2008/05/02(金) 20:10:02ttp://www.kmonos.net/alang/d/2.0/property.html
動作例 これでいいのかな?
ttp://codepad.org/7jPFcZXj
0150デフォルトの名無しさん
2008/05/02(金) 21:44:48>>149
ttp://codepad.org/JLIVZDYF
こんな感じに、モジュール名まで考えたときに stringof だと都合が悪いんだよね…
mangleof と demangle でいけないかと思ったけど、これもなんかうまくいかないし…
どうすればいいんだろう?
0151デフォルトの名無しさん
2008/05/02(金) 23:24:110152デフォルトの名無しさん
2008/05/02(金) 23:37:420153149
2008/05/02(金) 23:40:14うーん、確かに半端だ…
.NET Framework の Type.Fullname プロパティ相当のものが
現在のD言語には用意されていないようなのが不味いのかな。
0154デフォルトの名無しさん
2008/05/03(土) 00:19:06浮動小数点数がどういうものかを勉強しろ。
0155デフォルトの名無しさん
2008/05/03(土) 00:33:290156デフォルトの名無しさん
2008/05/03(土) 00:37:58stringof はタプルに対しても使える。
モジュール名は実行時でも良いなら typeid で取れるね。
0157デフォルトの名無しさん
2008/05/03(土) 01:16:37Dの・・・?
0158デフォルトの名無しさん
2008/05/03(土) 01:24:550159デフォルトの名無しさん
2008/05/03(土) 01:36:590160デフォルトの名無しさん
2008/05/03(土) 01:48:200161デフォルトの名無しさん
2008/05/03(土) 01:51:09今まで使ってきた言語を示すべし
0162デフォルトの名無しさん
2008/05/03(土) 02:25:190163デフォルトの名無しさん
2008/05/03(土) 02:51:49Decimalはライブラリ(というかモジュール?)だから組み込みどうしではPythonも同じじゃない?
標準で入れるべき,となるとまた別な問題な気がするけど,dsourceとかにあるのかなぁ
0164デフォルトの名無しさん
2008/05/03(土) 10:30:41まあ、欲しい奴が移植すればいいだろう
0165デフォルトの名無しさん
2008/05/03(土) 15:22:400166デフォルトの名無しさん
2008/05/03(土) 15:37:180167デフォルトの名無しさん
2008/05/04(日) 09:46:12VSのMakeプロジェクト、asm{ int 3;} に慣れすぎていた自分がいた・・・
0168デフォルトの名無しさん
2008/05/05(月) 01:02:20クラスメンバーのアクセス制限属性(private とか protected とか)は、
記述したらそのアクセス制限が適用されるのはわかるのですが
記述しなかった場合、どのアクセス制限が適用されるのかご存じのかた居ませんか?
とりあえず試した限りでは public っぽいのですが・・・。
0169デフォルトの名無しさん
2008/05/05(月) 01:23:20デフォルト publicだよ
0170デフォルトの名無しさん
2008/05/05(月) 01:25:480171デフォルトの名無しさん
2008/05/05(月) 01:43:51どもありがとうございました〜
0172デフォルトの名無しさん
2008/05/05(月) 08:12:45Dは初心者向けじゃなくて今までの言語との比較が基本だから仕方ない気もしてたり
0173デフォルトの名無しさん
2008/05/06(火) 00:46:470174デフォルトの名無しさん
2008/05/06(火) 01:35:34ttp://rayerd.ddo.jp/pukiwiki/ingwiki/index.php?C%2FC%2B%2B%A4%CB%C8%E8%A4%EC%A4%BF%BF%CD%A4%CED%B8%C0%B8%EC#ba92f204
比較したいならこっちをどうぞ
0175デフォルトの名無しさん
2008/05/06(火) 01:38:46http://www.dsource.org/projects/poseidon/wiki/WikiStart?action=diff&version=31
[descent diff]
http://www.dsource.org/projects/descent/wiki/WikiStart?action=diff&version=65
0176デフォルトの名無しさん
2008/05/06(火) 04:51:01ありがとうございました。
おかげさまで>106もどきができたのですが、
長いのでここに貼るのはどうかなという感じのものです。
codepadはたぶんコンパイラのバージョンの違いで通りませんでした。
0177デフォルトの名無しさん
2008/05/06(火) 20:37:530178デフォルトの名無しさん
2008/05/08(木) 09:39:000179デフォルトの名無しさん
2008/05/08(木) 12:09:550180デフォルトの名無しさん
2008/05/08(木) 17:44:31しかし、懐かしいもんひっぱってきたねぇ。>>自転車
意味的にはハンドルはどっちも同じだったと思うけど。
0181デフォルトの名無しさん
2008/05/08(木) 18:50:380182デフォルトの名無しさん
2008/05/08(木) 19:10:34そろそろD2に移行しようかな
ttp://wiki.dprogramming.com/Dfl/Snapshots
0183デフォルトの名無しさん
2008/05/08(木) 21:04:49あれ?どうやったらD2で使えるんですか?
0184デフォルトの名無しさん
2008/05/08(木) 21:26:32まだ対応してないとも書いてるけど
0185デフォルトの名無しさん
2008/05/08(木) 22:01:430186デフォルトの名無しさん
2008/05/08(木) 22:32:15>>184
スナップショットのほうで対応してるってことかと。
0187デフォルトの名無しさん
2008/05/08(木) 23:09:11c:\d2\dmd\bin\dmd.exeじゃなくて
c:\d\dmd\bin\dmd.exeの方を使おうとしてくれるのだろうか orz
c:\d を c:\_d に改名したら普通に動くのに・・・
どこかに設定が残っているのでしょう?
0188デフォルトの名無しさん
2008/05/08(木) 23:15:56両方のバージョンを入れていて競合する人はdfl.exeを使う前に
dfl -i
を実行してやればいいみたいだ
0189デフォルトの名無しさん
2008/05/09(金) 00:29:43会いに来て荒♪井♪注♪
0190デフォルトの名無しさん
2008/05/09(金) 07:28:430191デフォルトの名無しさん
2008/05/09(金) 16:24:340192デフォルトの名無しさん
2008/05/09(金) 22:01:09class Test
{
int[string] x;
void a(Test* t){assert("hello" in t.x);}
Test* b(){return &this;}
}
void main()
{
Test t = new Test();
t.x["hello"]=1;
t.a(t.b); // Error: Access Violation
}
ナゼ?
0193デフォルトの名無しさん
2008/05/10(土) 00:48:280194192
2008/05/10(土) 01:38:42確かにTest#bを
Test* b()
{
static Test c;
c = this;
return &c;
}
にすると解決
ただ、なんとなくいまいち泣希ガス
意図としては関数bには&tを返してほしいんだが、そういうのはワガママ?
0195デフォルトの名無しさん
2008/05/10(土) 01:49:12オブジェクトを値渡ししてるのに
0196デフォルトの名無しさん
2008/05/10(土) 01:54:470197192
2008/05/10(土) 02:18:39根本的なことわすれてるなおれ。
別方法で打開しました。おさわがせ。
0198デフォルトの名無しさん
2008/05/10(土) 02:55:09{
int[string] x;
void a(Test t){assert("hello" in t.x);}
Test b(){return this;}
}
void main()
{
Test t = new Test();
t.x["hello"]=1;
t.a(t.b);
}
これじゃ駄目だったの?
0199デフォルトの名無しさん
2008/05/10(土) 03:51:490200デフォルトの名無しさん
2008/05/10(土) 19:35:180201デフォルトの名無しさん
2008/05/10(土) 19:36:250202デフォルトの名無しさん
2008/05/10(土) 22:11:020203デフォルトの名無しさん
2008/05/10(土) 22:19:290204202
2008/05/10(土) 22:45:05void main(){
auto x = new class {int a; string b;};
x.a = 1;
x.b = "hoge";
}
0205デフォルトの名無しさん
2008/05/10(土) 22:56:52auto y = new class {int a; string b;};
Dだとxとyが同じ型にならないのがだめだな。
0206202
2008/05/10(土) 22:59:05同じ型がいい理由ってどんなんがあるの?
0207デフォルトの名無しさん
2008/05/10(土) 23:00:45行頭のスペースが残ってる
for(;;){
writefln();
}
0208デフォルトの名無しさん
2008/05/10(土) 23:05:14配列に突っ込みたいときとか
0209デフォルトの名無しさん
2008/05/10(土) 23:31:080210デフォルトの名無しさん
2008/05/11(日) 05:34:080211デフォルトの名無しさん
2008/05/11(日) 08:00:40匿名型は有意義なんだろうけど今のままならあんまりかなあ
匿名型のTupleを可変長テンプレートの引数に与えるとかで代用できないのか
0212デフォルトの名無しさん
2008/05/11(日) 11:00:31ありがとう〜
0213デフォルトの名無しさん
2008/05/12(月) 08:33:31なければ作成する
auto p= key in as;
if( p is null ) {
as[key]= A()
p= key in as;
}
っていうのがめんどくさいので、過去スレ参考にして以下みたいなのを
つくってみた
template key_type(T)
{
static if(is(T A:U[A],U)) { alias A key_type;}
}
template return_type(T)
{
static if(is(T A:U[A],U)) { alias U return_type; }
}
return_type!(T)* has(T)( ref T as, key_type!(T) key)
{
auto p= key in as;
if( p !is null ) return p;
static if( is(return_type!(T):Object) ) {
as[key]= new return_type!(T)();
} else {
as[key]= return_type!(T)();
}
return key in as;
}
0214213
2008/05/12(月) 20:41:00p.MEMBER= VALUE;
って感じです。
こうやったほうがいいぜ、とかご意見ありましたらm(_ _)m
0215デフォルトの名無しさん
2008/05/12(月) 20:42:16とかじゃあかんの。
0216213
2008/05/12(月) 23:46:320217デフォルトの名無しさん
2008/05/12(月) 23:54:090219デフォルトの名無しさん
2008/05/13(火) 20:33:38private import tango.stdc.stringz : toDString = fromUtf8z, toCString = toUtf8z;
というコードがあるんですが、
これってどう修正すれば動くんでしょう?
0220デフォルトの名無しさん
2008/05/13(火) 20:56:43private import tango.stdc.stringz : toDString = fromStringz, toCString = toStringz;
参考:
http://dsource.org/projects/tango/docs/current/tango.stdc.stringz.html
http://www.kmonos.net/alang/d/2.0/module.html
0221デフォルトの名無しさん
2008/05/13(火) 21:30:45ありがとうございます。
0222デフォルトの名無しさん
2008/05/13(火) 21:42:04http://www.digitalmars.com/download/freecompiler.html
でImplibを使ってLibファイルを作り、
pragma (lib, "sqlite3.lib");
extern (C):
int sqlite3_open (char* filename, sqlite3** database);
int sqlite3_close(sqlite3* database);
として関数を使ってみたんですが、Undefined Symbolと出てしまいます。
何か足りないものか間違ってる所があるんでしょうか?
0223デフォルトの名無しさん
2008/05/13(火) 22:17:290224デフォルトの名無しさん
2008/05/13(火) 23:06:23ttp://codepad.org/Ola6Mjkq
こう書くより、
ttp://codepad.org/kEF07sfw
と、末尾再帰の形にしたほうがいいのかな?
コンパイル時に末尾最適化がかかるとは思ってないけども、
文字列が長くなったときに影響あるかな…と思いまして。
0225デフォルトの名無しさん
2008/05/13(火) 23:09:58関数にすれば良くね?
0226デフォルトの名無しさん
2008/05/13(火) 23:29:12適当にコンパイル時に実行できるようにしてみた。
string toUpper(string src){
if(src.length == 0)return "";
foreach(i,c;src){
if('a'<=c && c<='z'){
string result = src[0..i];
foreach(d;src[i..$])
result ~= ('a'<=d&&d<='z' ? d-'a'+'A' : d);
return result;
}
}
return src;
}
void main(){
const static x = toUpper(null);
printf("%.*s\n",x);
}
0227224
2008/05/13(火) 23:48:25コンパイル時に実行できる関数がうまく作れなかったのでテンプレートにしたんだけど
関数で書けるのなら関数のほうがいいですね。参考になりました。ありがとう。
0228デフォルトの名無しさん
2008/05/14(水) 00:20:18ポエニーのソースを見ると良いよ。sqlite3 をつかってたはず
0229デフォルトの名無しさん
2008/05/14(水) 04:01:35ありがとうございす。
ソースの中にあった、dllとLibファイルを入れ替えたら動きました・・・。
Libファイルの作り方が悪かったようです。
0230デフォルトの名無しさん
2008/05/14(水) 07:12:25前はコンパイラがすっこんすっこん落ちてた
0231デフォルトの名無しさん
2008/05/14(水) 10:11:13void bar(...) {
}
}
これをdmd_2.012-030708_i386.debでコンパイルするとSegmentation faultが出る
0232デフォルトの名無しさん
2008/05/14(水) 14:22:020233デフォルトの名無しさん
2008/05/14(水) 16:00:42void foo(T...)(T a){
void bar(U...)(U b){writefln(b);}
bar(a);
}
0234デフォルトの名無しさん
2008/05/14(水) 19:58:22Cスタイルならva_listをとる関数を別途用意するしかない。
Dスタイルなら配列で受けて配列のまま渡せばいい。
可変長引数タプルなら>>233。これが汎用性は一番高い。
0235デフォルトの名無しさん
2008/05/14(水) 23:04:12dsource.orgのWindowsAPI bindings+
わなDさんから頂いたcoffimplibでPlatformSDKから作ったlib
でWM_IME_CHARがこないんだ、がみんなどうよ?
0236デフォルトの名無しさん
2008/05/15(木) 13:13:07これはどういう意味なんでしょう。
関数は定義されてるはずなんですが。
0237デフォルトの名無しさん
2008/05/15(木) 13:14:28定義されてない関数でした。
0238デフォルトの名無しさん
2008/05/15(木) 16:21:340239デフォルトの名無しさん
2008/05/16(金) 01:32:39char[char[]][]
じゃエラーになるんですが、どういう風に宣言すればいいんでしょう?
0240デフォルトの名無しさん
2008/05/16(金) 01:42:540241デフォルトの名無しさん
2008/05/16(金) 03:03:200242デフォルトの名無しさん
2008/05/16(金) 16:07:18それじゃ文字の連想配列の配列じゃね
0243デフォルトの名無しさん
2008/05/16(金) 20:47:04アクション呼ぶのにSwtich文つらつら書いてるのがあれなんですが。
0244デフォルトの名無しさん
2008/05/16(金) 21:43:462.BOFの発表であったいずれ来るかもしれないライブラリを待つ
3.自分で作る
のどれかかな
0245デフォルトの名無しさん
2008/05/17(土) 06:44:20>>242
動きました。
ありがとうございました。
0246デフォルトの名無しさん
2008/05/17(土) 11:56:07["hoge":"omg","test":"sod"];
こういう配列を受け入れる変数はどういう宣言が必要なんでしょうか。
0247デフォルトの名無しさん
2008/05/17(土) 11:59:310248デフォルトの名無しさん
2008/05/17(土) 13:23:02~=じゃなくてそのまま=で入れられるんですた。
0249デフォルトの名無しさん
2008/05/17(土) 16:19:03New/Changed Features
Added -man switch to browse manual.
Added -lib switch to generate library files. Also causes multiple object files to be generated from one source module.
When generating an executable file, only one object file is now generated containing all the modules that were compiled, rather than one object file per module.
Rewrote the rdmd utility to properly track dependencies and command-line compiler options (currently only working under Linux).
Changed the Phobos makefile linux.mak to take advantage of the new -lib feature. Improved full build speed by 3x.
std.algorithm: Changed the map() function so that it deduces the return type. Also map can be now curried.
std.contracts: Added file and line information to enforce. Added errnoEnforce that formats the error message according to errno. Added corresponding ErrnoException class.
std.conv: Made std.to curryable. Changed std.to to throw exception when object-to-object cast fails. Eliminated some superfluous printfs.
0250デフォルトの名無しさん
2008/05/17(土) 16:19:48std.encoding: Got rid of types Utf8, Utf16, Utf32, Ascii, Latin1, Windows1252. Introduced types AsciiChar, AsciiString, Latin1Char, Latin1String, Windows1252Char, Windows1252String.
std.encoding: For now commented out std.encoding.to.
std.file: Changed Boolean function signatures (e.g. exists) to return bool instead of int. Got rid of some gotos. Added the readText, lastModified, mkdirRecurse, and rmdirRecurse functions.
std.functional: Improved compose so it accepts an unbounded number of functions. Added the pipe function.
std.getopt: Added new option stopOnFirstNonOption. Also automatically expand dubious option groups with embedded spaces in them (useful for shebang scripts)
std.math: improved integral powers
std.md5: Improved signature of sum so it takes multiple arrays. Added getDigestString.
0251デフォルトの名無しさん
2008/05/17(土) 16:20:09std.process: added getenv and setenv. Improved system() so it returns the exit code correctly on Linux.
std.random: added the dice function - a handy (possibly biased) dice.
std.typecons: Finalized and documented the stupendous Rebindable template.
std.utf: added the codeLength function. Got rid of some gotos.
Bugs Fixed
std.format: Fixed unlisted bug in raw write for arrays
std.getopt: Fixed unlisted bug in dealing with one-letter options with bundling disabled
0252デフォルトの名無しさん
2008/05/17(土) 16:22:26std.format: Fixed unlisted bug in raw write for arrays
std.getopt: Fixed unlisted bug in dealing with one-letter options with bundling disabled
Bugzilla 2014: fopen fails on large files.
Bugzilla 2031: Documentation: template value parameters
Bugzilla 2032: Documentation for creating a class on the stack is unintuitive
Bugzilla 2037: Article on hijacking is outdated
Bugzilla 2038: Remove hello2.html from samples directory
Bugzilla 2039: -ignore switch is missing from compiler docs
Bugzilla 2054: Const system broken on struct assignment.
Bugzilla 2055: (ICE) Compiler crash on struct initializer with too many elements
Bugzilla 2056: Const system does not allow certain safe casts/conversions involving deep composite types
Bugzilla 2058: Describe hidden value passed to class member functions
Bugzilla 2063: std.xml access violation for nested, closed tags
Bugzilla 2065: Return value of std.file.exists() is inverted.
0253デフォルトの名無しさん
2008/05/17(土) 16:23:12Bugzilla 2071: spec doesn't mention pointer arithmetic with two pointer operands
Bugzilla 2072: std.typecons documentation anomaly.
Bugzilla 2074: Variant arithmetic operations fail. For now the fix is to comment out all right-hand side operators. Suggestions for a better fix are welcome.
Bugzilla 2075: Spec does not specify how array literals are stored.
Bugzilla 2084: operator ?: does not compute the tightest type
Bugzilla 2086: Describe relationship between string and char[] more explicitly
Bugzilla 2089: Issues with CTFE and tuple indexes
Bugzilla 2090: Cannot alias a tuple member which is a template instance
Bugzilla 2100: Assertion failure: '0' on line 4842 in file 'expression.c'
Bugzilla 2109: asm {lea EAX, [0*0+EAX]; } rejected.
-EOF-
0254デフォルトの名無しさん
2008/05/17(土) 16:40:482) phobosの改善
3) バグ修正
といったところか
0255デフォルトの名無しさん
2008/05/17(土) 18:27:420256デフォルトの名無しさん
2008/05/17(土) 23:22:30gdcって、もう開発停止してるんですか?
メンテもされてないコンパイラを使うのは少し気が引けます。
0257デフォルトの名無しさん
2008/05/17(土) 23:27:200258デフォルトの名無しさん
2008/05/17(土) 23:29:120259デフォルトの名無しさん
2008/05/17(土) 23:34:460260256
2008/05/17(土) 23:45:48レスありがとうございます。
sourceforge見てもわからなかったので、困ってました。
とりあえずgdcを使っていこうと思います。
0261デフォルトの名無しさん
2008/05/17(土) 23:47:03固まるんだけど、誰か分かりませんか?
こんなの
int main() {
int[int][] a;
a.length = 5;
return 0;
}
0262デフォルトの名無しさん
2008/05/18(日) 00:25:43ほんとだ。これでも固まる(実行時)。
void main()
{
typedef int[int] intint;
intint[] a = new intint[5];
}
0263デフォルトの名無しさん
2008/05/18(日) 00:47:150264デフォルトの名無しさん
2008/05/18(日) 04:04:55それはずっと前からバージョン関係なく止まる。
効率良くはないが、俺はループさせてnullで埋めたりしてた。
0265デフォルトの名無しさん
2008/05/18(日) 08:36:52ttp://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.ide&artnum=176
Zeus自体は有料なんだけどね
ttp://www.zeusedit.com/index.html
0266デフォルトの名無しさん
2008/05/18(日) 16:45:27どこが原因かわかんね
0267デフォルトの名無しさん
2008/05/18(日) 17:30:22onStartTag内で、attrがからっぽ
0268デフォルトの名無しさん
2008/05/19(月) 03:50:56与えられた値を使って行いたいです。D言語だとinvariantなメンバの初期化はどうやって
行うのでしょうか。
0269デフォルトの名無しさん
2008/05/19(月) 04:56:06class Foo
{
invariant int bar_;
this(int bar)
{
bar_ = bar;
}
void bar(int baz)
{
//bar_ = baz; コメント外すとError: can only initialize const member bar_ inside constructor
}
}
0270デフォルトの名無しさん
2008/05/19(月) 08:19:550271デフォルトの名無しさん
2008/05/19(月) 08:25:55値型の構造体にはコンストラクタが定義できない
無駄なインスタンスが作られないからメンバ初期化子はいらないわけか
0272デフォルトの名無しさん
2008/05/19(月) 08:56:390273デフォルトの名無しさん
2008/05/19(月) 09:12:330274デフォルトの名無しさん
2008/05/19(月) 14:09:25encodingのドキュメントぱっと見たけど、シグニチャがGeneric過ぎて使い方がすぐイメージできんw
あとEncodingSchemeASCIIとかのクラス名はASCIIEncodingSchemeのほうが良くないか。
語順がなんか気持ち悪い。
ともあれ、これにEncodingStreamと、ICUEncodingSchemeとかを加えてやれば、
Javaや.NET並のエンコーディング処理能力が得られるのかな。
0275デフォルトの名無しさん
2008/05/19(月) 17:28:28それはいいな
0276デフォルトの名無しさん
2008/05/20(火) 03:00:00void hoge(int v);
で、hoge っていうプロパティになるらしいけど、
hoge++;
って出来ないのは何とかならないですか?
DMD 1.028 です。
0277デフォルトの名無しさん
2008/05/20(火) 03:14:210278デフォルトの名無しさん
2008/05/20(火) 06:16:40気が向いたら、やってくれるかも。
0279デフォルトの名無しさん
2008/05/20(火) 07:34:510280デフォルトの名無しさん
2008/05/20(火) 16:09:150281デフォルトの名無しさん
2008/05/20(火) 17:00:58いや、「いつの間にか必要無くなってる」というのを待ってるのかもw
0282デフォルトの名無しさん
2008/05/20(火) 17:52:35自分たちでやるっつーのは?
0283デフォルトの名無しさん
2008/05/20(火) 18:03:470284デフォルトの名無しさん
2008/05/20(火) 19:13:40今やらねばいつできる -> 今やらねばいつかできる
俺がやらねば誰がやる -> 俺がやらねば誰かやる
0285デフォルトの名無しさん
2008/05/20(火) 19:27:130286デフォルトの名無しさん
2008/05/22(木) 09:46:31増えてきていい感じに使えるようになってきたね
0287デフォルトの名無しさん
2008/05/22(木) 13:59:29統合されないのかなぁ・・・
ひろいとはいえないDの世界で基本ライブラリが
2つ開発されているのはなんとももったいない
0288デフォルトの名無しさん
2008/05/22(木) 14:47:57みたいなこと言ってなかったっけか
0289デフォルトの名無しさん
2008/05/22(木) 16:25:44やっぱり「そのうち統合されるんじゃない?」みたいな感じだった気が。
今のところ統合する気はないってことだよね。
0290デフォルトの名無しさん
2008/05/22(木) 18:00:180291デフォルトの名無しさん
2008/05/22(木) 23:05:110292デフォルトの名無しさん
2008/05/22(木) 23:06:380293デフォルトの名無しさん
2008/05/23(金) 12:32:390294デフォルトの名無しさん
2008/05/23(金) 16:03:120295デフォルトの名無しさん
2008/05/23(金) 23:45:02import std.stdio;
import std.string;
alias Variant var;
int[var] dic;
dic[var("aaaa")]= 10;
writeln( dic[var("aaaa")] );
あれ〜これってだめなのかな
writelnで即落ちします・・・
0296デフォルトの名無しさん
2008/05/23(金) 23:47:220297デフォルトの名無しさん
2008/05/24(土) 00:43:03同じ名前空間みたいな感じでアクセス( Util.hoge() って感じに)したくて、
今はそれぞれのファイルにおいて関数をテンプレートで書いて、
ひとつのファイルでそれらをミックスインしてるんだけど、他に良い方法
ないですか?
0298デフォルトの名無しさん
2008/05/24(土) 00:48:340299デフォルトの名無しさん
2008/05/24(土) 01:17:12writeln(dic[var("aaaa")])は,本当に割り当てたキーを参照してる?
dic[var("aaaa")] = 10;
dic[var("aaaa")] = 20;
writefln(dic); //-> [aaaa:10,aaaa:20]
0300デフォルトの名無しさん
2008/05/24(土) 01:18:48あー、なるほど・・・。ありがとうございます!
import("hoge.d"); ですよね。やってみます。
ピンと来たんだけど調べるのに時間かかってしまった・・・。
0301297
2008/05/24(土) 02:02:50mixin(import("hoge.d"));
でコンパイルオプション -Jhoge ってな感じですね。
うまくいきました。感謝です。
趣味でゲーム作るならやっぱりD言語ですねぇ
0302デフォルトの名無しさん
2008/05/24(土) 07:25:47わ、本当だ!
ありがとうございます。
if( var("aaaa") in dic ) {
writeln( "has" ); //表示されない
}
0303デフォルトの名無しさん
2008/05/25(日) 09:24:280304デフォルトの名無しさん
2008/05/25(日) 11:33:38Dのリテラル文字列ってinternされないって事なのかな?
0305デフォルトの名無しさん
2008/05/25(日) 12:37:31March 3, 2008
dfl-20080303.exe installer
* Implemented ImageList.
* Added images to ListView.
ttp://www.dprogramming.com/listviewimages.gif
0306デフォルトの名無しさん
2008/05/25(日) 13:00:140307デフォルトの名無しさん
2008/05/25(日) 15:00:09toHashは同じ値になるから,結局はopCmpやopEqualsの実装によるのではなかろうか
0308デフォルトの名無しさん
2008/05/25(日) 16:32:51var("aaa") == var("aaa") ってなりますね。
opCmpかな〜
0309デフォルトの名無しさん
2008/05/26(月) 19:48:250310デフォルトの名無しさん
2008/05/26(月) 19:54:020311デフォルトの名無しさん
2008/05/26(月) 20:24:55ムチャシヤガッテとは言っておく。
0312デフォルトの名無しさん
2008/05/26(月) 20:33:41::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ... --─- :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::.. (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡:::: //[|| 」 ||] ::::::::::゜:::::::::: ...:: :::::
:::::::::::::::::: . . . ..: :::: / ヘ | | ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .::::::::: /ヽ ノ ヽ__/ ....... . .::::::::::::........ ..::::
:.... .... .. . く / 三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧ ∧∧ ∧∧ ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:( )ゝ ( )ゝ( )ゝ( )ゝ無茶しやがって… ..........
.... i⌒ / i⌒ / i⌒ / i⌒ / .. ..... ................... .. . ...
.. 三 | 三 | 三 | 三 | ... ............. ........... . .....
... ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ ............. ............. .. ........ ...
三三 三三 三三 三三
三三 三三 三三 三三
0313デフォルトの名無しさん
2008/05/26(月) 21:08:24それはあくまで「趣味の範囲」での大規模ですね、わかります
0314デフォルトの名無しさん
2008/05/26(月) 22:10:17GUIです。
0315デフォルトの名無しさん
2008/05/26(月) 22:22:100316デフォルトの名無しさん
2008/05/26(月) 23:20:170317デフォルトの名無しさん
2008/05/26(月) 23:54:12>>314普通のGUIアプリならDでもいいけど
Dの利点は優れた構造化能力と何よりフロンティアであることです
実務を楽にこなしたいならC#の方がいいよ
0318デフォルトの名無しさん
2008/05/27(火) 10:37:03答えるのが難しい質問だね。
言語仕様自体は、コード解釈で微妙な誤解が起きたりしないよう
注意が払われてるなど、大規模開発を意識したものになってる。
しかし現状では、処理系やライブラリの熟成度に不安がある。
0319デフォルトの名無しさん
2008/05/27(火) 12:08:48class T1 {
public int getint() { return 1; }
}
------ main.d ------
static import test;
class T2 : test.T1 {
public override int getint() {
return test.T1.getint(); // 駄目
//return typeof(super).getint(); // こう書きたいけどこれも駄目
}
}
int main() {
auto t = new T2;
return t.getint();
}
dmd.2.014で上のように書くとスタックオーバーフローになるのですが
dmd.2.014と私のどちらがおかしいのでしょうか?
私がおかしい場合、どのように書くのが正解なのでしょうか?
0320デフォルトの名無しさん
2008/05/27(火) 15:11:58{
return super.getint;
}
これじゃ駄目な理由は何?
0321デフォルトの名無しさん
2008/05/27(火) 16:06:32いえ、それで結構です。super.で呼べるのですね。
それを知らなくて return super(); とかいろいろやってました。
ありがとうございました。
0322デフォルトの名無しさん
2008/05/27(火) 16:39:58全部hiddenなんとかのエラーが出てしまう
alias Object.print print;
public void print() {}
て全部やらないのいけないよね?
めんどいけどしょうがないのかな
0323デフォルトの名無しさん
2008/05/27(火) 20:51:130324デフォルトの名無しさん
2008/05/27(火) 20:57:58「強さ」の基準からしてまったくわからんのだけど。
0325デフォルトの名無しさん
2008/05/27(火) 21:05:12Dは少数派だから厳しいだろうな。
0326デフォルトの名無しさん
2008/05/27(火) 21:13:400327デフォルトの名無しさん
2008/05/27(火) 22:24:34http://www.kmonos.net/alang/d/2.0/dbc.html
0328デフォルトの名無しさん
2008/05/27(火) 22:51:58D言語使わせてくれwwwwwwwwwwwwwwwwww
0329デフォルトの名無しさん
2008/05/27(火) 23:02:190330デフォルトの名無しさん
2008/05/28(水) 00:16:400331デフォルトの名無しさん
2008/05/28(水) 00:39:320332デフォルトの名無しさん
2008/05/28(水) 00:45:540333デフォルトの名無しさん
2008/05/28(水) 02:15:29いや、やってみてから挫折しろよ
0334デフォルトの名無しさん
2008/05/28(水) 05:49:30最新に完全対応かどうかはわからないけど
DSourceにあるBindingsで叩ける
最新SDKとリンクさせてるけど、いまのところ問題ない。
0335デフォルトの名無しさん
2008/05/28(水) 06:27:21何がしたいっていうか、そういう遊びだろう。
勝敗の決まらない、操作そのものを楽しみ続ける格闘ゲームみたいなものだから、
基準がまったく定まらず、お互いにまったく噛み合わないこと自体も
彼らの求める相互排他とか衝突を生み出すいいきっかけなんだよ。
0336デフォルトの名無しさん
2008/05/28(水) 07:27:03なんでD言語のキャラクターはこんなにムカつくんだwww
0337デフォルトの名無しさん
2008/05/28(水) 08:51:39まじ?Bindingsってなんか依存関係でコンパイラがエラーはくんじゃなかった?
0338デフォルトの名無しさん
2008/05/28(水) 11:11:110339デフォルトの名無しさん
2008/05/28(水) 11:20:34ウザカワキャラってことで売り出していこうぜ,
0340デフォルトの名無しさん
2008/05/28(水) 11:41:160341デフォルトの名無しさん
2008/05/28(水) 13:57:47自分でシコシコ作るしかないのかな…
0342デフォルトの名無しさん
2008/05/28(水) 14:33:410343デフォルトの名無しさん
2008/05/28(水) 15:44:21他の導入済み都市と比べて夏と冬の日照時間にほとんど差がないから意味がないような。
また政治家の手続き遊びによる金稼ぎが。
0344デフォルトの名無しさん
2008/05/28(水) 20:29:270345デフォルトの名無しさん
2008/05/29(木) 15:41:170346デフォルトの名無しさん
2008/05/29(木) 15:58:530347デフォルトの名無しさん
2008/05/29(木) 21:01:280348デフォルトの名無しさん
2008/05/29(木) 21:29:540349デフォルトの名無しさん
2008/05/29(木) 21:49:180350デフォルトの名無しさん
2008/05/30(金) 01:11:16Error 42: Symbol Undefined _glutInit
というエラーが出てしまいます
調べてみたところ、おそらくglut32.libが原因のようで、
glut32.libは DIDE with D のものを使うといいとの事ですが、
DIDE with Dのサイトがもう見れなくなっていて困っています。
DIDE with D以外だとどこのglut32.libを使えば動くんでしょうか?
ちなみにimplib -a glut32.lib glut32.dl で作ったものと
yaneSDKに入っているもの、DedicateDのglut32.libを試しても同じエラーが出てしまいました。
それともなにか他の原因があるのでしょうか?
原因がわかりそうな方お願いします。
0351デフォルトの名無しさん
2008/05/30(金) 01:15:26.zipで上げてくれたら誰かやってくれるかもしれんよ
0352デフォルトの名無しさん
2008/05/30(金) 02:15:140353デフォルトの名無しさん
2008/05/30(金) 02:33:11DLLがあるなら、implib /s glut32.lib glut32.dllでいいと思うのだが
0354353
2008/05/30(金) 03:51:53↑は使えない。
まずhttp://www.xmission.com/~nate/glut.htmlからvc++用のバイナリを落としてくる。
それから、glut32.libをcoffimplib.exeでOMFライブラリに変換して、
それを使えば大丈夫なはず。
0355353
2008/05/30(金) 04:06:26というか、むしろこっちが原因かも。
libファイルがどうこうじゃなくて。
yaneSDKに入っているものでも大丈夫だったし。
0356353
2008/05/30(金) 04:23:03extern(C)をextern(Windows)に変えろって意味ね。
0357デフォルトの名無しさん
2008/05/30(金) 04:37:310359デフォルトの名無しさん
2008/05/30(金) 12:50:340360デフォルトの名無しさん
2008/06/01(日) 01:29:200361デフォルトの名無しさん
2008/06/01(日) 01:44:580362デフォルトの名無しさん
2008/06/01(日) 23:05:090363デフォルトの名無しさん
2008/06/01(日) 23:07:130364デフォルトの名無しさん
2008/06/02(月) 02:32:170365デフォルトの名無しさん
2008/06/02(月) 06:30:290366デフォルトの名無しさん
2008/06/02(月) 08:12:34・・・より優れているのか?
0367デフォルトの名無しさん
2008/06/02(月) 08:40:13他はしらん。
0368デフォルトの名無しさん
2008/06/02(月) 11:37:160369デフォルトの名無しさん
2008/06/02(月) 13:03:41Descentでなったことはないわ。
0370デフォルトの名無しさん
2008/06/03(火) 03:28:470371デフォルトの名無しさん
2008/06/03(火) 03:34:260372デフォルトの名無しさん
2008/06/04(水) 21:37:39これ通らないのかよー
0373デフォルトの名無しさん
2008/06/04(水) 21:42:58-J.
0374デフォルトの名無しさん
2008/06/04(水) 22:12:580375デフォルトの名無しさん
2008/06/04(水) 22:14:130376デフォルトの名無しさん
2008/06/05(木) 08:25:02これがなんかの絵文字かなやんだおれは
修行がたりない
0377デフォルトの名無しさん
2008/06/05(木) 15:40:400378デフォルトの名無しさん
2008/06/05(木) 20:39:49- ノ
0379デフォルトの名無しさん
2008/06/05(木) 21:33:30-J
o/
0380デフォルトの名無しさん
2008/06/06(金) 08:02:350381デフォルトの名無しさん
2008/06/06(金) 17:40:200382デフォルトの名無しさん
2008/06/06(金) 20:03:300383デフォルトの名無しさん
2008/06/06(金) 20:17:420384デフォルトの名無しさん
2008/06/06(金) 20:42:150385デフォルトの名無しさん
2008/06/06(金) 20:51:460386デフォルトの名無しさん
2008/06/06(金) 20:53:36そろそろ本格的に使ってみようかと思うんだが(趣味でだけど)
JavaとRubyに慣れた身にはC++は苦痛・・・・・・代替言語が欲しい
0387デフォルトの名無しさん
2008/06/07(土) 03:58:32rubyみたくクラスに機能をインジェクションしようと考えてテンプレートをいじる遊びもできるし
0388デフォルトの名無しさん
2008/06/07(土) 11:02:13バグは普通に使う分にはすでにあまり問題ないレベルであるように感じる。
趣味で追いかける分にはD言語は愉快な言語だと思う。
0389デフォルトの名無しさん
2008/06/07(土) 15:20:19const Matrix!(typeof(T + U), M, N) opAdd(U)(Matrix!(U, M, N) that);
}
こんな感じでテンプレートの引数として使われてるテンプレート引数って推論できないものかなあ。
0391デフォルトの名無しさん
2008/06/07(土) 16:44:05template hoge(int hage) {
void hogefunc() { ... }
}
void func(int arg) {
mixin hoge!(arg);
hogefunc();
}
って、どう展開されるんですか?
0392デフォルトの名無しさん
2008/06/07(土) 16:47:000393デフォルトの名無しさん
2008/06/07(土) 17:21:15不定値になるのかな?
0394デフォルトの名無しさん
2008/06/07(土) 17:28:140395デフォルトの名無しさん
2008/06/08(日) 07:59:200396デフォルトの名無しさん
2008/06/08(日) 10:29:42何故か0が渡されてる
http://codepad.org/qbKJaxYV
0397デフォルトの名無しさん
2008/06/08(日) 12:24:220398デフォルトの名無しさん
2008/06/08(日) 14:35:15CTFEにしても、関数はランタイムでも実行できないとだめだから、
コンパイルが通るのがおかしい。
0399デフォルトの名無しさん
2008/06/08(日) 18:03:26あの大量のリストを全部確認するのはつらいよなあ…
1000近くあるし英語だし…
というかこれも結構重複とかしてるんだろうなぁ…
0400デフォルトの名無しさん
2008/06/08(日) 19:06:25キーの大きい順にとか、値の小さい順にとかやりたいんだけども。
0401デフォルトの名無しさん
2008/06/09(月) 00:03:47dsss build --doc
でドキュメントが生成できるのな。知らなかったぜ。
dsss net install は未だに成功した試しがないんだがw
0402デフォルトの名無しさん
2008/06/09(月) 08:04:55そういえばdmd -doc使ってないなあ
プロファイラとコードカバレッジとユニットテストが
dmdでできるのは重宝しているが
0403デフォルトの名無しさん
2008/06/09(月) 10:45:14foreach (v; aa.keys.sort) {...} とかじゃ不足?
0404403
2008/06/09(月) 10:48:26キーで回すんだから foreach (k; aa.keys.sort) と書かなきゃ。
0405デフォルトの名無しさん
2008/06/09(月) 14:45:000406デフォルトの名無しさん
2008/06/09(月) 16:03:57まだ微妙じゃないのか?
foreach (v, k; aa.keys.sort) じゃね?
>>405
>フォールバック
ちくしょう、おいらにゃ意味がわかんねぇ
0407デフォルトの名無しさん
2008/06/09(月) 20:01:16書くならこうだろう。
foreach (i, k; aa.keys.sort)
0408デフォルトの名無しさん
2008/06/10(火) 02:19:56機能いらねぇよ派が多数だったみたいだけどな。Tango のライブラリとか細かすぎていちいち
書くの面倒になっちゃうよ。DFL みたいに all.d みたいなファイルを用意しておけば、まぁ
似たようなことはできそうなんだけど。
0409デフォルトの名無しさん
2008/06/10(火) 02:45:530411デフォルトの名無しさん
2008/06/11(水) 04:09:130412デフォルトの名無しさん
2008/06/11(水) 08:37:58単純ループのベンチマークでもとって比べるか?w
0413デフォルトの名無しさん
2008/06/11(水) 08:49:25コンパイラの出来も同時に判る
組み込みやってた知り合いはそれやってたらできたてのコンパイラのバグみつけた
0414デフォルトの名無しさん
2008/06/11(水) 10:00:11を実行しようとすると、
cannot implicitly convert expression ("Arg %s = %sfoo27") of type const(char[]) to invariant(char)[]
て怒られた。
なんでstringで受けられないの? ってことと、あと文字列が連結されてるだけで置換されてない……。
公式のサンプル通りなんだけど、ドキュメント古くなってる? 俺がなんか変なことしてるのかな。
0415デフォルトの名無しさん
2008/06/11(水) 13:33:38stringでは受けられないんじゃないかなぁ(実際はconst(const(char[]))かな).
使うときはいつもautoなので気にしてなかった.
それと,Formatの中ではchar[]で分岐してるので,
ここをconst char[]に修正しないとまともにフォーマットされない.
0416デフォルトの名無しさん
2008/06/11(水) 20:46:29めったに使わないから不自由はしてないけど
0417デフォルトの名無しさん
2008/06/11(水) 22:23:070418デフォルトの名無しさん
2008/06/12(木) 12:28:580419デフォルトの名無しさん
2008/06/12(木) 14:41:53お忙しいのか?
0420デフォルトの名無しさん
2008/06/12(木) 21:27:19The old collection package will be deprecated prior to Tango 1.0.
こういうところがだろ?wwわかります。
0421デフォルトの名無しさん
2008/06/13(金) 01:09:15これか
なんでいきなりそんなことになんのよw
あまりにもbetaがbetaとして機能してねえw
0422デフォルトの名無しさん
2008/06/13(金) 01:11:200423デフォルトの名無しさん
2008/06/13(金) 14:05:08Threadクラスはガベコレが見てるから、別クラスを作るわけにもいかないし
phobos書き換えないと使えないってどんだけ
std.fileもなんかおかしいし
linux版ってもしかしてだれも使ってない?
windowsから移ってきてみたら、びっくりだ
0424デフォルトの名無しさん
2008/06/13(金) 15:36:39コンパイラにくっついてるのってひょっとしてフロントエンドの部分だけ?
コード生成とか最適化とかの部分はどっか別のところにある?
0425デフォルトの名無しさん
2008/06/13(金) 16:10:260426デフォルトの名無しさん
2008/06/13(金) 16:24:39フロントエンド部分だけがGDC用に公開されてる。
0427デフォルトの名無しさん
2008/06/13(金) 18:58:39みれないようわーん
0428デフォルトの名無しさん
2008/06/13(金) 20:35:380429デフォルトの名無しさん
2008/06/14(土) 02:14:13だけじゃなく、プロジェクトも abandoned なのが多いし。
0430デフォルトの名無しさん
2008/06/14(土) 02:34:32組み込みとかにも目を向けて欲しいんだが。
0431デフォルトの名無しさん
2008/06/14(土) 02:37:06まあ、最近は組み込みっていってもWindows動いてたりするけどさ。
0432デフォルトの名無しさん
2008/06/14(土) 02:41:09ある程度のスペックのあるターゲットになるだろうけど
0433デフォルトの名無しさん
2008/06/14(土) 07:51:10終わってるプロジェクトとそうでないものを区別して欲しいな
最終更新日時でソートするだけでもいいけど
0434デフォルトの名無しさん
2008/06/14(土) 11:44:06いいぞ、もっとやれ(笑)
0435デフォルトの名無しさん
2008/06/14(土) 13:55:460436デフォルトの名無しさん
2008/06/14(土) 14:06:520437デフォルトの名無しさん
2008/06/14(土) 14:12:280438デフォルトの名無しさん
2008/06/14(土) 14:27:410439デフォルトの名無しさん
2008/06/14(土) 15:32:35正しい方法らしいからいいんじゃねw
0440デフォルトの名無しさん
2008/06/14(土) 20:10:22金と時間に余裕がなきゃできないけどなw
一度やってみたいよ。
0441デフォルトの名無しさん
2008/06/14(土) 22:27:46ありがとう、やってみる。
0442デフォルトの名無しさん
2008/06/15(日) 01:11:120443デフォルトの名無しさん
2008/06/15(日) 01:26:510444デフォルトの名無しさん
2008/06/15(日) 01:35:240445デフォルトの名無しさん
2008/06/15(日) 01:45:37やめてくれww
0446デフォルトの名無しさん
2008/06/15(日) 08:48:480447デフォルトの名無しさん
2008/06/15(日) 10:09:022.x系が使いたいんだが、
最近のバイナリってどっかにないかな?
0448デフォルトの名無しさん
2008/06/17(火) 01:04:510449デフォルトの名無しさん
2008/06/17(火) 02:03:080450デフォルトの名無しさん
2008/06/17(火) 02:03:470451デフォルトの名無しさん
2008/06/17(火) 04:21:220452デフォルトの名無しさん
2008/06/17(火) 11:54:060453デフォルトの名無しさん
2008/06/18(水) 12:08:260454デフォルトの名無しさん
2008/06/18(水) 13:50:05動的配列+phobosのalgorithmで頑張る?
→push_backしたい。
→remove_if等が存在しないような?
tangoのcollectionを使う?
→sortやremove_ifをしたい場合、toArrayで配列にしないと無理?
→stable_sortが存在しないような?
いまいちこれだという方法が無い気がするのです。
なにか良いライブラリ等ありますでしょうか。
0455デフォルトの名無しさん
2008/06/18(水) 21:47:21int[] a;
a ~= other;
→remove_if等が存在しないような?
2.x系なら
ttp://www.digitalmars.com/d/2.0/phobos/std_algorithm.html#inPlace
int[] arr = [ 1, 2, 3, 4, 5 ];
// eliminate even elements
auto r = eliminate!("(a & 1) == 0")(arr);
assert(r == [ 1, 3, 5 ]);
assert(arr == [ 1, 3, 5, 4, 5 ]);
で無理かな?
0456デフォルトの名無しさん
2008/06/18(水) 22:30:55PICマイコン対応…と夢想しかけた。
0457デフォルトの名無しさん
2008/06/18(水) 22:36:30戻り値型推論キター
* Added Constraints to templates.
どうせならconceptまで実装してくれよ。
0458デフォルトの名無しさん
2008/06/18(水) 22:44:30(2) auto func(){ return 1; }
(1)は通るのに(2)は通らない。けち臭いなあ
0459デフォルトの名無しさん
2008/06/18(水) 22:57:250460デフォルトの名無しさん
2008/06/18(水) 22:58:50でも、ばっちいお…
0461デフォルトの名無しさん
2008/06/18(水) 23:29:31でもなんで無名関数とテンプレートだけなんだ
* Added Constraints to templates.
これは何かすげーなw
0462デフォルトの名無しさん
2008/06/18(水) 23:32:20使い回すのが難しいコードになってるとか邪推。
0463デフォルトの名無しさん
2008/06/18(水) 23:51:410464デフォルトの名無しさん
2008/06/19(木) 00:01:38今回できるようになったと言ってるわけじゃないんだわ
0465デフォルトの名無しさん
2008/06/19(木) 00:14:16typeof(return) a;
return a;
}
void main() {
f();
}
コンパイラしんじゃうよー
0466デフォルトの名無しさん
2008/06/19(木) 01:03:34なんか気持ち悪いな
0467デフォルトの名無しさん
2008/06/19(木) 01:37:43前から結構使いまわしてるよね。
0468デフォルトの名無しさん
2008/06/19(木) 02:05:49こんなスレがひっかかってちょっとワロタ
D言語でエロゲーつくって
ttp://pc11.2ch.net/test/read.cgi/gamedev/1091256780/
0469デフォルトの名無しさん
2008/06/19(木) 02:09:43Cとのインターフェースはあるんだから
0470デフォルトの名無しさん
2008/06/19(木) 02:12:49ttp://video.google.com/videoplay?docid=-3577027688253678001&q=D%E8%A8%80%E8%AA%9EBOF+2008-03-01&ei=mUFZSJScBobCwgO55s2IDg
.hから.dにするときにマクロの展開だけが面倒
0471デフォルトの名無しさん
2008/06/19(木) 02:21:43正真正銘プロの犯行に吹いたw
0472デフォルトの名無しさん
2008/06/19(木) 02:27:09なんという勇者w
DirectXなんてほとんど使ったことないが、
面白そうだからちょっといじってみるか
0473デフォルトの名無しさん
2008/06/19(木) 02:32:51まったく人がいなくて吹いた。
SDL+OpenGLのほうがポーティング揃ってるし、DirectX使うより楽だとおも。
たしかゲーム用にラップしたライブラリあったし。
あとフリーゲームの『去人たち』って、エロじゃないけどノベルゲで、D言語で作ってたはず。
ただシステム糞重くてうわーって感じだったけど。
0474デフォルトの名無しさん
2008/06/19(木) 09:45:23呼び出す側で古代C言語みたいにvoid型でキャストしよう。
0475デフォルトの名無しさん
2008/06/19(木) 12:14:530476デフォルトの名無しさん
2008/06/19(木) 14:15:34DirectXはCOMオブジェクトだから、ポーティングの仕方がCライブラリとはちょっとだけ違う。
0477デフォルトの名無しさん
2008/06/19(木) 16:37:52もういっそのこと無名関数テンプレートが欲しくなったんだがw
auto dg = (T,U)(T t, U u){ return t+u; };
するとこうなって
auto dg = (auto t, auto u){ return t+u; };
最終的にはこうか?w
auto dg = (t, u){ return t+u; };
これなんてマクロ?
0478デフォルトの名無しさん
2008/06/19(木) 16:40:210479デフォルトの名無しさん
2008/06/19(木) 16:50:40alias (T,U)(T t, U u){ return t+u; } dg;
が精一杯。
0480デフォルトの名無しさん
2008/06/19(木) 17:09:07どうぞ。
auto dg = new class {
auto opCall(T, U)(T t, U u) {
return t + u;
}
};
0481デフォルトの名無しさん
2008/06/20(金) 17:27:302.015でデリゲート型の引数が表示されないんだけど、前からだっけ?
0482デフォルトの名無しさん
2008/06/20(金) 21:08:46この会社に入りたい
0483デフォルトの名無しさん
2008/06/20(金) 22:04:03前からじゃない?
↓1.0
http://codepad.org/CREaEBun
0484デフォルトの名無しさん
2008/06/21(土) 02:58:03とおもってソース見てみたら、そもそもデストラクタなかった。
どうなってんだよ。
0485デフォルトの名無しさん
2008/06/21(土) 03:26:35これがなければデストラクタも使い物になるというものの…
0486デフォルトの名無しさん
2008/06/21(土) 03:57:45コンストラクタで一回だけ初期化できて、オブジェクトがdeleteされるときに道ずれにdeleteするの。
0487デフォルトの名無しさん
2008/06/21(土) 04:04:44phobosは統一性なさすぎて辛い…
0488デフォルトの名無しさん
2008/06/21(土) 14:30:25ファイルハンドルのような開放しなければならないメモリはガベコレの外にあるのだから、デストラクタに開放処理を書いても問題ないと思うけどね。
0489デフォルトの名無しさん
2008/06/21(土) 14:33:350490デフォルトの名無しさん
2008/06/21(土) 15:29:12これって、メンバオブジェクトをdeleteすることも認められないのかな?
0491デフォルトの名無しさん
2008/06/21(土) 18:20:160492デフォルトの名無しさん
2008/06/21(土) 19:39:110493デフォルトの名無しさん
2008/06/21(土) 21:29:05そんなのイラネwwww
って思ったけど、必要だな・・・
0494デフォルトの名無しさん
2008/06/21(土) 21:45:08たしか、デストラクタって呼ばれる保証はないんじゃなかったっけ?
だとしたら確実に行われなければならない処理をデストラクタに書くことはできないと思うのだけど。
0495デフォルトの名無しさん
2008/06/21(土) 23:10:12scope変数に入れたときは、必ずスコープアウトするときにデストラクタ呼ばれるから。
0496デフォルトの名無しさん
2008/06/21(土) 23:15:25抽象クラス側のメンバ関数定義において
派生クラスで必ず上書きをする事を明示する修飾子ってありますか?
0497デフォルトの名無しさん
2008/06/21(土) 23:19:560498デフォルトの名無しさん
2008/06/21(土) 23:26:36ありがとうございます!
0499デフォルトの名無しさん
2008/06/21(土) 23:27:510500デフォルトの名無しさん
2008/06/22(日) 03:41:51auto file = new FileConduit("hogehoge.txt");
auto buf = new BufferInput(file);
while (buf.fill(buf) != IConduit.Eof) {
auto str = buf.slice(buf.readable);
Cout.output.write(str);
outfile.write(str);
}
Tango なんだけど、Conduit から入力したものを複数の Conduit(?) に出力したいとき、
こういう風に一回バッファを介すしかないの?なんだか妙に生ぐさいやり方で気持ち悪いんだけど、
もっと良い方法ない?Conduit, Buffer, Input/OutputStream のあたりの仕組みが全く理解できない
0501デフォルトの名無しさん
2008/06/22(日) 05:45:30http://codepad.org/hco2juAc
0502デフォルトの名無しさん
2008/06/22(日) 07:15:28自作のコンテナでも、イテレータ定義すれば使えるのかなと思ったんだが、そもそもイテレータの作り方がよくわからん。
opStarAssignとかないし。
0503デフォルトの名無しさん
2008/06/22(日) 11:34:52それ、以前調べたけどまだ無理だと思う。
std.algorithm の中でイテレータに対して foreach range 文を使ってるんだけど
現状では foreach range 文をカスタマイズできないから、独自イテレータを定義できない。
0505500
2008/06/22(日) 17:02:06改めて>>501に�dクス。
ttp://codepad.org/FtRWpF3b
0506デフォルトの名無しさん
2008/06/22(日) 19:23:090507デフォルトの名無しさん
2008/06/22(日) 22:13:10ただ、どうやらConduitがベースになってて、他の便利なストリームに突っ込んで使うのがいい感じらしい。
Conduitは「入出力先」、Streamは「使い方」みたいな使い分けなんじゃないかと思う。
あと、InputStreamとOutputStreamはほかのStreamとは若干違って、Conduitの役割をInputとOutputで分割したようなものだと思って使ってる。
0508デフォルトの名無しさん
2008/06/22(日) 23:15:20なる。どうもありがとう。
……がっかりだーorz
0509デフォルトの名無しさん
2008/06/23(月) 09:16:36バカなの?
ぶっちゃけC++のほうが100万倍マシ
0510デフォルトの名無しさん
2008/06/23(月) 09:22:310511デフォルトの名無しさん
2008/06/23(月) 09:25:52元ネタはRubyだったのに何でC++に変えたの?
0512デフォルトの名無しさん
2008/06/23(月) 13:40:30// ファイル a.d
module a;
// ファイル b.d
module b;
とかあった場合に
// ファイル include.d
module include;
import a;
import b;
とかして
import include;
でaとbをimportみたいにしたいのですが。
0513デフォルトの名無しさん
2008/06/23(月) 14:02:24とかかな。
調べずに発言
0514デフォルトの名無しさん
2008/06/23(月) 14:43:31int main(){
char[][char[]][] list;
list.length = 100;
return 0;
}
とすると途中で止まってしまいます。
どのようにしたら止まらせずにlistの長さを伸ばしたり縮めたりできるのでしょうか
0515514
2008/06/23(月) 14:46:04>264試してみます
0516514
2008/06/23(月) 15:04:03nullで埋めるというのも分かりません
list[0] = null; とやっても使えないですし
連想配列を含む配列は使わない方がいいのでしょうか
0517デフォルトの名無しさん
2008/06/23(月) 18:30:43バグがあるんだから使わないほうがいいだろう。実際に使えないわけだし。
0518デフォルトの名無しさん
2008/06/23(月) 18:41:51http://codepad.org/og1d1ogP
0519デフォルトの名無しさん
2008/06/23(月) 18:44:49しばらくしたら消えるみたいだし、一応貼っておく
--
int main(){
typedef char[][char[]] Map = null;
Map[] list;
list.length = 100;
writef(list.length);
return 0;
}
--
100
0520デフォルトの名無しさん
2008/06/23(月) 18:51:37>>20のもまだ消えてないみたいだし
0521デフォルトの名無しさん
2008/06/23(月) 19:12:28template Res(int N, O)
{
res!(N) << O.toString();
in { assert(O >> N); }
invariant O = N;
enum O = N;
throw new O(">>" ~ N.toString());
}
mixin Res(1, 乙);
はっちゃえ
0522デフォルトの名無しさん
2008/06/23(月) 19:43:260523デフォルトの名無しさん
2008/06/23(月) 21:02:01if( v.noneed ) {
vs.remove(i);
}
}
これが、2.0.15でできなくなった・・・
しかたないか
0524デフォルトの名無しさん
2008/06/23(月) 21:11:30じゃなくて?
0525デフォルトの名無しさん
2008/06/23(月) 21:21:000526デフォルトの名無しさん
2008/06/23(月) 23:08:02ありがとうございますm(_ _)m
不思議だ…
何でtypedefかませると動くんだろう
もう構造体かクラスかで囲ってそれを配列化しようかとか思ったけど
凄い人はやっぱりいるもんだなぁ
既出だろうけどモジュールと同じ名前のディレクトリがあるとldで躓いてコンパイル失敗するね
>519を動かそうと思ってn.dってファイル作ってdmd nさせたら
nってディレクトリがあるもんだから失敗した\(^o^)/
0527デフォルトの名無しさん
2008/06/24(火) 00:17:50このやたらハイテンションな中国人によると、Entice Designer で日本語が入力できない問題は、
同梱の Scintilla のバージョンが古いせいらしい。このポストのとおり、SciTE のバイナリを
落としてきて、SciLexer.dll -> enticelex.dll にリネームして上書きすれば日本語が通ったよ。
Entice、補完はいまいちだけど Descent より軽いので、漏れはコードエディタとして重宝してる。
0528デフォルトの名無しさん
2008/06/24(火) 00:30:56>>514は連想配列か普通の配列かの判断が甘いから起こるのかな。
typedefすれば確実に普通の配列だとわかるからlengthに値をセットできる、と。
0529デフォルトの名無しさん
2008/06/24(火) 00:47:32その理屈はおかしい、
>>261のaは連想配列ではなくて動的配列だし、
typedefすることによって型の曖昧さが減るということもありえない。
0530デフォルトの名無しさん
2008/06/24(火) 07:09:370531518
2008/06/24(火) 08:01:25配列のところ読んだら連想配列も動的配列も長さ0で初期化されるとあったから
ふとtypedefするときに初期値を新しく指定できるっていうのを思い出して試しただけだったり
(最初は適当な配列で初期化しようとしたけど、連想配列リテラルがよく分からないからnullにしたら動いた)
試しにtypedefの
= null
を削るとcodepadでもTimeoutする
何で初期値指定すると動くのかとかはよく分からんが
0532デフォルトの名無しさん
2008/06/24(火) 15:15:58できました!ありがとうございます。
0533デフォルトの名無しさん
2008/06/24(火) 17:30:23本来、nullと長さ零の配列は同じ扱いのはずなんだけどねえ
0534デフォルトの名無しさん
2008/06/24(火) 21:55:41void main()
{
int[] a = null;
int[] b = [1,2,3];
b.length = 0;
assert(a == b); // success
assert(a is b); // fail
}
0535デフォルトの名無しさん
2008/06/24(火) 22:30:46最初の頃はそういってたけど、いつの間にか仕様が変わったらしい。
0536デフォルトの名無しさん
2008/06/25(水) 11:08:17親階層のフィールドにアクセスしたい場合の方法ってありますか?
superは継承の場合だし、CTest.Value_はコンパイルエラーに。
class CTest
{
int Value_;
CInner Inner_;
class CInner
{
int Value_;
void Function(){
// 自身のValue_を表示
writefln("%d",Value_);
// 親階層のValue_を表示する場合は??
writefln("%d",???);
}
}
this(){
Value_ = 1;
Inner_ = new CInner();
Inner_.Value_ = 2;
}
void Function(){
Inner_.Function();
}
}
0537デフォルトの名無しさん
2008/06/25(水) 11:28:43ttp://www.kmonos.net/alang/d/2.0/class.html#nested
0538デフォルトの名無しさん
2008/06/25(水) 11:50:47ありがとうございます。
this.outer.Value_ でいけました。
0539デフォルトの名無しさん
2008/06/25(水) 13:42:230540デフォルトの名無しさん
2008/06/25(水) 20:34:500541デフォルトの名無しさん
2008/06/26(木) 01:31:030542デフォルトの名無しさん
2008/06/26(木) 01:38:530543デフォルトの名無しさん
2008/06/26(木) 08:44:44心霊写真と見せかけてしばらく見てると白粉野郎がアップになるやつ。
0544デフォルトの名無しさん
2008/06/26(木) 16:03:15じーーっくりと見させてからやった方がダメージ大きいのに
0545デフォルトの名無しさん
2008/06/26(木) 16:27:51びびったけど
0546デフォルトの名無しさん
2008/06/28(土) 02:31:24びびった。だがD関係ねーや。
あるいはこれがまだ見ぬヲルタンの素顔なのか?
0547デフォルトの名無しさん
2008/06/28(土) 02:58:590548デフォルトの名無しさん
2008/06/28(土) 04:10:100549デフォルトの名無しさん
2008/06/28(土) 06:08:290550デフォルトの名無しさん
2008/06/28(土) 17:30:050551デフォルトの名無しさん
2008/06/28(土) 17:40:230552デフォルトの名無しさん
2008/06/28(土) 17:45:54static ifで同じことができる気がするんですが
0553デフォルトの名無しさん
2008/06/28(土) 17:48:19分けてかけることに意味があるんじゃない?
よくわからんけど。
0554デフォルトの名無しさん
2008/06/28(土) 21:03:45うーん、わざわざ構文拡張してまでやることなのかな…
まあよく考えたら将来的な理由かもしれないし、
あんまりこだわらないことにします
0555デフォルトの名無しさん
2008/06/28(土) 21:36:32Dを狙ってるんですが、このスレ見る限りやめたほうがいいような気がしてきました。
この言語将来性あるんでしょうか? こんなに利用者にコケにされてる言語はじめてみた。
0556デフォルトの名無しさん
2008/06/28(土) 21:41:270557デフォルトの名無しさん
2008/06/28(土) 21:43:11まあそれはさておき、バイナリ吐く言語使いたいなら素直ににC/C++やった方がいいと思うんだ
0558デフォルトの名無しさん
2008/06/28(土) 21:49:54初のコンパイラ方式をDにするのはやめたほうがいいのではないかと。
CかJavaかC#が良いと思う
Dは、ある程度以上の実力者が戯れるのには最適な言語だと思う
0559デフォルトの名無しさん
2008/06/28(土) 22:00:03// 特殊化
template factorial(int n) {
enum factorial = n * factorial!(n - 1);
}
template factorial(int n : 1) {
enum factorial = 1;
}
// constraints
template factorial(int n) if(n != 1) {
enum factorial = n * factorial!(n - 1);
}
template factorial(int n) if(n == 1) {
enum factorial = 1;
}
// static if
template factorial(int n) {
static if(n != 1) enum factorial = n * factorial!(n - 1);
else enum factorial = 1;
}
// CTFE
int factorial(int n) {
if(n != 1) return n * factorial(n - 1);
else return 1;
}
0560デフォルトの名無しさん
2008/06/28(土) 22:04:41これだけでチューリング完全とかw
0561デフォルトの名無しさん
2008/06/28(土) 22:11:520562デフォルトの名無しさん
2008/06/29(日) 00:37:59でもテンプレート周りとかconst周りはmore than one wayだけでもないぜ。
コンパイル時に決定可能かどうかという重大な違いがある
0563555
2008/06/29(日) 00:48:50言語仕様や標準ライブラリにいろいろけちつけるのは愛の鞭だったんですね。
初のコンパイラ型言語ってわけでもないので(Cを一通り。MinGWのWindows SDKにあちこち不備があるのが鬱陶しくなってやめた)
忠告を聞かずにDの世界に飛び込んでみます。
0564デフォルトの名無しさん
2008/06/29(日) 00:55:09ここがひっかかるw
Dはそんなのの塊のような気がす
0565デフォルトの名無しさん
2008/06/29(日) 01:02:320566デフォルトの名無しさん
2008/06/29(日) 01:24:57> >不備があるのが鬱陶しくなってやめた
> ここがひっかかるw
w
まああの頃とは一味違うつもりなんで……不備は自分でどうにかできる、といいな。
>>565
GUIツールキットってメモリ喰いであまりいいイメージないんですよね。
せっかくWindows API結構覚えてるんで生で頑張ります。
と、ここまで書いてちょっと調べてみたらwxWidgetsって普通のGUIツールキットとはちょっと違うんですね。これは素敵かも。
0567デフォルトの名無しさん
2008/06/29(日) 11:58:28CはやることやったらすぐC→C++でもいいと思うし
0568デフォルトの名無しさん
2008/06/29(日) 12:46:390569デフォルトの名無しさん
2008/06/29(日) 12:55:40いつか仕事で使える日が来ることを期待してるが
0570デフォルトの名無しさん
2008/06/29(日) 13:11:160571デフォルトの名無しさん
2008/06/29(日) 13:26:44SetWindowsLong(win, GWL_USER_DATA, &hoge);
ってかんじでウィンドウにインスタンスをひも付けさせたら
しばらくは使えるんだけど、そのうちインスタンスが
まともにとれなくなるのはやっぱりGCのせい?
0572デフォルトの名無しさん
2008/06/29(日) 13:53:34yes.
どこかに参照を残しておかないとなくなる。
0573デフォルトの名無しさん
2008/06/29(日) 14:36:450574デフォルトの名無しさん
2008/06/29(日) 15:06:220575デフォルトの名無しさん
2008/06/29(日) 20:16:29そもそもDのクラスは参照型なので、やるとしても
Hoge hoge = new Hoge();
SetWindowsLong(win, GWL_USER_DATA, cast(void*)hoge);
こうじゃないか?
&hogeだとhogeの寿命が来た時点でダメになる気がする。
0576デフォルトの名無しさん
2008/06/29(日) 21:58:12GreenPadのソースみながらウィンドウプロシジャ周り(0x042444c7の)をDでやろうとした時に引っかかったw
冷静になって考えれば簡単なミスなんだが。結構考え込んだ気がする。
0577デフォルトの名無しさん
2008/06/29(日) 22:25:489時間弱しか経ってないのにgoogleすごいな
0578デフォルトの名無しさん
2008/06/29(日) 22:31:21足りない情報を探そうと思ったら〜というのを探してますっていう昨日の自分の書き込みがヒットしたり…
0579デフォルトの名無しさん
2008/06/29(日) 23:56:57自分の質問が検索結果のTOPにでる悲しさ
0580デフォルトの名無しさん
2008/06/30(月) 04:32:392chで質問してから2時間くらいで自分の質問が引っかかったことがある
しかし自分のブログは一切かからない
0581デフォルトの名無しさん
2008/06/30(月) 06:23:570582デフォルトの名無しさん
2008/06/30(月) 08:54:49こんなとこまでCを真似なくていいのに
0583デフォルトの名無しさん
2008/06/30(月) 09:08:020584デフォルトの名無しさん
2008/06/30(月) 09:40:120585デフォルトの名無しさん
2008/06/30(月) 09:54:580586デフォルトの名無しさん
2008/06/30(月) 10:17:15出されたご飯は残さず食べる。
転んでも泣かない。
おいら(ひろゆき)のギャグには大爆笑する。
0587デフォルトの名無しさん
2008/06/30(月) 12:46:30switch(n) {
case 1: ...
case 2,3: ...
case 4,5,6: ...
}
でいい
0588デフォルトの名無しさん
2008/06/30(月) 12:50:23って我らがうぉるたーたんのお達しだ。諦めておけ。
0589デフォルトの名無しさん
2008/06/30(月) 12:52:13しないと混乱するしな。
0590デフォルトの名無しさん
2008/06/30(月) 13:54:04でも、無くてもそんなに困らないし、
そんなことよりライブラリをどうにか…
0591デフォルトの名無しさん
2008/06/30(月) 20:41:270592デフォルトの名無しさん
2008/06/30(月) 23:14:060593デフォルトの名無しさん
2008/06/30(月) 23:23:220594デフォルトの名無しさん
2008/07/01(火) 01:54:490595デフォルトの名無しさん
2008/07/01(火) 01:55:250596デフォルトの名無しさん
2008/07/01(火) 03:47:380597デフォルトの名無しさん
2008/07/01(火) 05:58:54case ブラクラ:
if (res!=584) throw new bad_res;
}
こうですか?わかりま(ry
0598デフォルトの名無しさん
2008/07/01(火) 06:10:320599デフォルトの名無しさん
2008/07/02(水) 10:50:14このときにうまくスタックトレースを取る方法がありますでしょうか。
flectionedを使うと例外の場合のスタックトレースは取れたのですが……
0600デフォルトの名無しさん
2008/07/02(水) 16:43:350601デフォルトの名無しさん
2008/07/02(水) 17:13:59int* Func(){
int Num = 10;
return &Num;
}
みたいにした場合にスコープを抜けてもアドレスは有効なのでしょうか。
0602デフォルトの名無しさん
2008/07/02(水) 17:22:57http://lists.puremagic.com/pipermail/digitalmars-d-announce/2008-July/009696.html
il|li orz il|li
0603601
2008/07/02(水) 17:45:01良いわけないですね。コンパイルエラーになりました。
0604デフォルトの名無しさん
2008/07/02(水) 17:49:37あらぁ…w
0605デフォルトの名無しさん
2008/07/02(水) 20:06:050606デフォルトの名無しさん
2008/07/02(水) 20:37:560607デフォルトの名無しさん
2008/07/02(水) 20:40:310608デフォルトの名無しさん
2008/07/02(水) 21:52:24え?どうせ行くつもりなかったけどいつ募集してたの?
0609デフォルトの名無しさん
2008/07/02(水) 21:57:19普通にずっとNGで募集してたと思うが。
0610デフォルトの名無しさん
2008/07/03(木) 21:56:380611デフォルトの名無しさん
2008/07/04(金) 01:03:370612デフォルトの名無しさん
2008/07/04(金) 02:46:140613デフォルトの名無しさん
2008/07/04(金) 06:42:090614デフォルトの名無しさん
2008/07/04(金) 16:28:12任意の引数を渡したいのですが、可能でしょうか?
void main(){
const int Value = 3;
int[] Nums = [1,2,3,4,5];
Nums = eliminate!("a < Value")(Nums);
}
とか
void main(){
const int Value = 10;
int[] Nums = [1,2,3,4,5];
static bool Func(int Src, int Value){
return Src < Value;
}
Nums = eliminate!(Func(Value))(Nums);
}
のような事をやりたいのですが。
0615デフォルトの名無しさん
2008/07/04(金) 16:58:48FileのreadLineをstringに渡そうと思ったら
Error: cannot implicitly convert expression (input.readLine()) of ty
pe char[] to invariant(char)[]
とかエラーがでるから困る
標準ストリームはdin,doutでいいんだけど
CFileを使うのは気が引ける。fopenとかいまさら使いたくないし
0616デフォルトの名無しさん
2008/07/04(金) 17:08:14前者はmixinで文字列生成
後者は
static bool Func(int Value)(int Src){return Src < Value;}
eliminate!(Func!(10))(Nums)
とか?
試してないから間違ってたらごめん
0617デフォルトの名無しさん
2008/07/04(金) 17:10:44mutable typeからinvariant typeへは明示的な変換が必要だからidup
string s = stream_.readLine().idup;
0618615
2008/07/04(金) 17:45:28っていうか標準ライブラリなんだからinvariant仕様に直しとけと言いたい
Fileをカプセル化した自前クラスで美味しくいただけそうです
0619デフォルトの名無しさん
2008/07/04(金) 21:35:03更新まだかなぁ・・・
0620デフォルトの名無しさん
2008/07/04(金) 23:50:07とりあえず成功する例
かっこ悪いのでbindとか関数リテラルがどのくらい効くのか教えていただけると助かります
const int Value = 3;
static bool func(int a) { return (a < Value); }
void main(){
int[] Nums = [1,2,3,4,5];
Nums = eliminate!(func)(Nums);
writefln(Nums);
}
0621デフォルトの名無しさん
2008/07/04(金) 23:55:51後者は動きました。
>614のコードにはめると
eliminate!(Func!(Value))(Nums)
で動きますね
0622デフォルトの名無しさん
2008/07/05(土) 01:33:35あえて定数に名前を付けたいのなら enum Value = 3; をおすすめ
0623デフォルトの名無しさん
2008/07/05(土) 01:34:070624デフォルトの名無しさん
2008/07/05(土) 11:41:280625デフォルトの名無しさん
2008/07/05(土) 13:46:31void func(lazy void a) {
dg={return a;};
}
これでいけると思うんだがコンパイラが死ぬな。
void func(void delegate()[] a...);
でも使っとくといいと思う。
0626614
2008/07/06(日) 01:30:55というか提示した例が悪かったです。
比較したいValueは動的な値です。
const int Value = 3;
を
int Value = 3;
に置き換えた場合で考えて頂けますでしょうか。
C++でboost::lambdaを使った場合の
int Value = 3;
remove_if(Nums.begin(), Nums.end(), _1 < Value);
のようなことがやりたいのです。
0627デフォルトの名無しさん
2008/07/06(日) 01:47:050628デフォルトの名無しさん
2008/07/06(日) 01:49:21とっとと、static引数導入してオーバーロードで関数ポインタとかも取れるように整理してほしいわ
0629デフォルトの名無しさん
2008/07/06(日) 03:06:20import std.stdio;
T[] removeIf(alias cond, T)(T[] arr) {
T[] ret;
foreach (i; arr)
if (cond(i))
ret ~= i;
return ret;
}
void main() {
auto less3 = (int i){return i < 3;};
static bool greator3(int i){return i > 3;};
int[] arr = [1,2,3,4,5];
writefln(removeIf!((int i){return i<4;})(arr));
writefln(removeIf!(less3)(arr));
writefln(removeIf!(greator3)(arr));
}
0630デフォルトの名無しさん
2008/07/06(日) 03:12:21int j = 3;
auto less = (int i){return i<j;};
これできるよ
0631デフォルトの名無しさん
2008/07/06(日) 03:26:590632デフォルトの名無しさん
2008/07/06(日) 08:29:380633デフォルトの名無しさん
2008/07/06(日) 13:14:43コードplz
0634デフォルトの名無しさん
2008/07/06(日) 16:05:28writefln(removeIf!((int i){return i<4;})(arr));
もしかしてphobosの話だろうか
0635デフォルトの名無しさん
2008/07/06(日) 17:20:200636デフォルトの名無しさん
2008/07/06(日) 19:50:480637デフォルトの名無しさん
2008/07/06(日) 21:17:260638デフォルトの名無しさん
2008/07/06(日) 21:33:510639デフォルトの名無しさん
2008/07/06(日) 22:03:14int[int] a = [1:1];
writefln(a);
a = null;
writefln(a);
0640デフォルトの名無しさん
2008/07/06(日) 22:23:11もとのaの参照をどこかで持ってれば、そっちはクリアされないわけだし。
0641デフォルトの名無しさん
2008/07/06(日) 22:38:19aa.remove(key);
じゃダメ?
0642デフォルトの名無しさん
2008/07/07(月) 02:05:060643デフォルトの名無しさん
2008/07/07(月) 13:24:28やりたかったのはまさにこれです。
ばっちりです。ありがとうございました。
0644デフォルトの名無しさん
2008/07/07(月) 13:47:40つけなくても参照で渡されているのですが、返値で返した場合って.dup
されたものが返されてしまうのでしょうか?
class CTest{
int[] Nums;
this(){
Nums ~= 1;
Nums ~= 2;
Nums ~= 3;
}
int[] GetNums(){return Nums;}
}
void main(){
CTest Test = new CTest;
int[] Nums = Test.GetNums();
Nums ~= 4;
}
でTest.Numsに4を追加したいのですが。
配列に限らずD言語で参照返しする場合ってどうやるのでしょうか。
0645デフォルトの名無しさん
2008/07/07(月) 14:22:17http://twitter.com/larsivi/statuses/851357615
0646デフォルトの名無しさん
2008/07/07(月) 14:58:32Nums ~= 4; の直前と直後の配列のポインタを見てみるとわかるけど、インスタンスが変わっちゃってる。
# ということは、 ~= の演算子は配列のインスタンスに対する捜査ではなくて、配列のインスタンスを保存している変数に対する操作っていうこと…かな?
classの場合は普通に返せる。配列だけは操作するときにインスタンスが同じものになるかどうか注意しなきゃいけない。
# 配列の要素を増やす時は違うインスタンスになる場合があって、配列の要素を減らす場合にはインスタンスは変わらない。
tangoのArrayBagみたいなクラスでラップすると幸せになれるかもしれない。
0647デフォルトの名無しさん
2008/07/07(月) 15:09:35笑っちゃった。俺の環境がおかしいのか?
0648デフォルトの名無しさん
2008/07/07(月) 16:06:54試してみましたが自分の環境では ~= の前後ではアドレスは変わらなかったです。
そして引数で渡したときはアドレスが変わらず、返値で返した場合はアドレスが
変わっていました。
class CTest{
int[] Nums;
this(){
Nums ~= 1;
Nums ~= 2;
Nums ~= 3;
}
int[]* GetpNums(){return &Nums;}
}
void main(){
CTest Test = new CTest;
int[]* pNums = Test.GetNums();
*pNums ~= 4;
}
と配列のポインタを返すようにしたらできました。
ただ、これだとGCがちゃんと返した配列のポインタを追ってくれるのかが不安だったり。
うーん、いまいち配列の扱いがわからない。
やはりクラスでラップするのが安全なのかなぁ。
0649デフォルトの名無しさん
2008/07/07(月) 16:13:58配列のポインタは Nums.ptr これで得られる。
http://codepad.org/tvVXZGEx
↑を参考にするとわかると思う。
# ちなみに、容量をリザーブしておくとインスタンスが変わらない。
# コメントアウトをはずすと同じポインタになる。
0650デフォルトの名無しさん
2008/07/07(月) 16:26:26codepadの環境では、前後でアドレスは変わった。
http://codepad.org/Mxf3ifJm
> Test.Nums: [401C3FB0]
> main.Nums(before): [401C3FB0]
> main.Nums(after): [401C2F80]
一応、仕様では「配列の連結は、 片方が長さ 0 の配列であっても必ずコピーを伴います」
だそうなので、Nums ~= 4; でローカルのNumsアドレスが新しい配列のものになるのが正常だと思う。
(つまり、参照先の配列インスタンス自体を連結演算によって変更するのは無理ってこと)
一個のメンバ変数を対象として変更する場合はメンバ変数への参照(ポインタ)を返してやればいいけど、
それだとTest.Numsの指す配列が他の変数によって参照されてたりするとやっかいな問題になると思う。
0651デフォルトの名無しさん
2008/07/07(月) 16:50:42AMD64とEM64Tってほぼ互換じゃなかったっけ
0652デフォルトの名無しさん
2008/07/07(月) 16:53:20> # ちなみに、容量をリザーブしておくとインスタンスが変わらない。
> # コメントアウトをはずすと同じポインタになる。
ホントだ。
Nums ~= 4; を Nums = Nums~4; とすると、アドレスが変わるようになる。
http://codepad.org/WetmPBdy
アドレスが変わらない場合も、Test.Numsの長さが自動的に延びるわけじゃなくて、
スライスみたいなことになってるみたいだ。(Test.Numsには4は追加されない)
http://codepad.org/cWJnruXE
こういう仕様なのかバグなのか。実装を考えればこの挙動は自然だけど……
0653デフォルトの名無しさん
2008/07/07(月) 17:19:30俺の無知か。スマソ
0654デフォルトの名無しさん
2008/07/07(月) 17:58:19そしてリザーブしてもアドレスは変わらないが、追加されたメンバが
更新されないと……
http://codepad.org/Kg0yzNfz
みたいに引数にリファレンスで渡した場合は追加されるので、それと
同じ事が返値でもできればいいのですが。
C++のように返値のリファレンス指定でできないんですねぇ。
0655デフォルトの名無しさん
2008/07/07(月) 18:29:01どうしてもうまく動かない・・・
2.0.15です
0656デフォルトの名無しさん
2008/07/07(月) 18:50:59trunk版でも無理なのだろうか
0657デフォルトの名無しさん
2008/07/07(月) 19:23:54>C++のように返値のリファレンス指定
俺もこれほしいかも
というか、参照とかポインタとかはC++のほうがわかりやすくて好きだ…
0658デフォルトの名無しさん
2008/07/08(火) 00:43:380659デフォルトの名無しさん
2008/07/08(火) 00:57:05linux環境だと、Theadクラス使うと落ちまくってとても使えたものじゃないのだが、
いつになったら直るのだろうか・・・
0660デフォルトの名無しさん
2008/07/08(火) 13:22:48ん、まさか tnago に DBI でもマージするつもりなのか…
アレの SQLite バインディングは動かないコードのまま trunk に放置されてるからなぁ…
0661デフォルトの名無しさん
2008/07/09(水) 00:02:39じゃあ、0.99.7に移行する前に破壊的変更の予習。
http://www.dsource.org/projects/tango/wiki/0_99_7_BreakingChanges
今回多いなw
0662デフォルトの名無しさん
2008/07/09(水) 01:17:41>tango.io: The use of FilePath and PathView in FileConduit is deprecated in favour of char[] paths
>tango.text.xml.XmlPrinter: Deprecated in favor of DocPrinter
>tango.group: Deprecation period expired, so will be removed.
ここら辺はかなり厳しそうだな。
0663デフォルトの名無しさん
2008/07/09(水) 02:17:160664デフォルトの名無しさん
2008/07/09(水) 02:24:07http://www.dsource.org/projects/tango/browser/branches/experimental/D2.0
0665デフォルトの名無しさん
2008/07/09(水) 03:23:460666デフォルトの名無しさん
2008/07/09(水) 03:34:050667デフォルトの名無しさん
2008/07/09(水) 04:46:530668デフォルトの名無しさん
2008/07/09(水) 11:04:080669デフォルトの名無しさん
2008/07/09(水) 18:53:28- re-implemented internal.monitor in D. Rationalized internal.object
- Bugzilla 288: changed return type of opEquals from int to bool. ***This necessitates doing a grep for opEquals and changing all the return values.***
- Added .__vptr and .__monitor properties for class objects for use in the internal runtime library.
- Made rdmd's source available through svn, see http://dsource.org/projects/phobos/browser/trunk/tools/rdmd.d
- Simplified std.algorithm by fusing together higher-order functions taking an alias and their counterparts taking a string
-Added module std.array containing array operations: insert, erase, and replace
-Changed the enforce's implementation to generate smaller code per call
-Changed std.functional.binaryFun to work with strings and function aliases alike
-In std.getopt, added optChar, assignChar, and endOfOptions, per popular demand :o|
-In std.math, replaced a bunch of consts with enums
-In std.numeric, added Don Clugston as author and operated minor documentation fixes
-Improved std.stdio.chunks to take an iteration tally in addition to the chunk
また、すごい変更がw
0670デフォルトの名無しさん
2008/07/09(水) 19:16:19それより修正して欲しかったバグの修正ktkr
0671デフォルトの名無しさん
2008/07/09(水) 20:07:240672デフォルトの名無しさん
2008/07/09(水) 22:05:19opEqualsの戻り値型が変わったことぐらいだろ。
0673デフォルトの名無しさん
2008/07/10(木) 12:38:58文字列が入ると最後に'\0'を埋めてくれて
writeflnなどD用の時は'\0'を無視、
C用の時は'\0'を使えるという感じに
もしくはC用の関数内では最後に'\0'が付加されるというような
toStringzで事足りるんだけどな
0674デフォルトの名無しさん
2008/07/10(木) 16:34:06リンケージによって文字列の内部構造が変化するのは便利かもだけど怖い
0675デフォルトの名無しさん
2008/07/10(木) 20:38:11パフォーマンスが云々うぉるたんが抵抗してたのは解決したんかな。
しかしTangoはどうあってもモジュール名のUpperCamelを止める気はないのだろうか。
0676デフォルトの名無しさん
2008/07/10(木) 21:39:03いまさら変えられても混乱するしこのままでいいかなって最近思ってきた。
0677デフォルトの名無しさん
2008/07/10(木) 21:49:200678デフォルトの名無しさん
2008/07/10(木) 23:18:34普通にマルチバイト文字が使えるようにして欲しい。
const char *track_name[] = [mbs"日本語",mbs"日本語"];
みたいな。
0679デフォルトの名無しさん
2008/07/11(金) 00:05:180680デフォルトの名無しさん
2008/07/11(金) 03:19:48それはコンパイル時に文字コードが決まるの?それとも実行時?
0681デフォルトの名無しさん
2008/07/11(金) 03:23:24const achar* track_name[] = [astring("日本語"), astring("日本語")];
0682デフォルトの名無しさん
2008/07/11(金) 08:59:230683デフォルトの名無しさん
2008/07/11(金) 11:30:130684デフォルトの名無しさん
2008/07/11(金) 12:46:38誰だよ
0685デフォルトの名無しさん
2008/07/11(金) 13:41:250686デフォルトの名無しさん
2008/07/11(金) 13:45:36>5のマヌケな足の開き方が素敵
0687デフォルトの名無しさん
2008/07/11(金) 13:48:48過去との互換性を気にするならば
最低限のテキストエディタのメモ帳ぐらいが対応すればいい話
win用で人気のあるテキストエディタはutf8とか対応してるしな
0688デフォルトの名無しさん
2008/07/11(金) 14:49:140689デフォルトの名無しさん
2008/07/11(金) 20:18:320690デフォルトの名無しさん
2008/07/11(金) 20:59:24ああそういうことができるんだね
でもできないんだね
>>689
あったっけ?なかったような
0691デフォルトの名無しさん
2008/07/11(金) 22:59:570692デフォルトの名無しさん
2008/07/12(土) 01:28:36「dsource.orgのWin32Api Bindingsをdmd2.0でコンパイルすると出るエラー」
が、いつの間にかなくなってるッ!!
>>340(いつからなおってたんだー!?)
やっと2.0系に復帰できるワァ
0693デフォルトの名無しさん
2008/07/12(土) 01:41:01半年前には大丈夫っだった気がするが、
使ってるAPIの差かもしれん
0694デフォルトの名無しさん
2008/07/12(土) 06:31:50DMD2.016でまたむりぽ
0695デフォルトの名無しさん
2008/07/12(土) 07:25:41半年前には直ってたものを壊れた瞬間に知るとかw
0696デフォルトの名無しさん
2008/07/12(土) 07:28:55元々の問題が修正されたのならいいのだけど
0697デフォルトの名無しさん
2008/07/12(土) 10:44:360698デフォルトの名無しさん
2008/07/12(土) 11:16:58まじだ
バグフィックスだけだね
0699デフォルトの名無しさん
2008/07/12(土) 15:04:080700デフォルトの名無しさん
2008/07/12(土) 15:27:120701デフォルトの名無しさん
2008/07/12(土) 21:05:40だからUTF-8でない文字列をchar*に入れるなとあれほど…
0702デフォルトの名無しさん
2008/07/12(土) 21:12:500703デフォルトの名無しさん
2008/07/12(土) 21:14:19もちろん
0704デフォルトの名無しさん
2008/07/12(土) 22:16:11それ以外が入ってるのは気持ち悪いというか、間違っているという話。
0705デフォルトの名無しさん
2008/07/12(土) 23:09:10こういう案はどうなの?
ttp://rayerd.ddo.jp/pukiwiki/ingwiki/index.php?D%B8%C0%B8%EC%A4%C8MBCS%A4%CE%CF%C3
0706デフォルトの名無しさん
2008/07/13(日) 00:35:330707デフォルトの名無しさん
2008/07/13(日) 00:37:29wstring 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);
でコンパイル通るように直したほうがいい。
0708デフォルトの名無しさん
2008/07/13(日) 01:23:060709デフォルトの名無しさん
2008/07/13(日) 01:27:03>>708
import std.process;
std.process.system("dir");
0710デフォルトの名無しさん
2008/07/13(日) 01:31:20正直申し上げますと、あれインターフェイスが糞すぎる
0711デフォルトの名無しさん
2008/07/13(日) 01:34:08あ・・・ありがとう。
CreateProcess使ってできてやったーとか思ったらそんな簡単に・・・
0712デフォルトの名無しさん
2008/07/13(日) 01:35:030713デフォルトの名無しさん
2008/07/13(日) 01:44:57> MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length);
> でコンパイル通るように直したほうがいい。
え・・・そんなんできんの・・・
0714デフォルトの名無しさん
2008/07/13(日) 02:02:06さっき最新取ってきて直そうと思ったら、既に修正済・・・感動した
0715デフォルトの名無しさん
2008/07/13(日) 02:07:240716デフォルトの名無しさん
2008/07/13(日) 02:07:29???
0717デフォルトの名無しさん
2008/07/13(日) 02:11:21MultiByteToWideChar(codePage, 0, sz.ptr, sz.length, result.ptr, result.length);
キャストなしのこれをコンパイルエラー出さずに書くやり方があるのかなと
0718デフォルトの名無しさん
2008/07/13(日) 02:50:240719デフォルトの名無しさん
2008/07/13(日) 04:22:250720デフォルトの名無しさん
2008/07/13(日) 04:25:540721デフォルトの名無しさん
2008/07/13(日) 04:41:140722デフォルトの名無しさん
2008/07/13(日) 05:20:48だれか画像ゲットのやりかた教えてください。
0723デフォルトの名無しさん
2008/07/13(日) 08:40:25俺と同じ。知ってた。
0724デフォルトの名無しさん
2008/07/13(日) 09:09:18本当に良くあるから困る
stdioのwriteflnの時は俺がラリった
ioを自分で作成して出力せにゃいかんのかと思ったり
0725722
2008/07/13(日) 09:29:22事故解決。
0726デフォルトの名無しさん
2008/07/13(日) 18:23:130727デフォルトの名無しさん
2008/07/13(日) 18:36:520728デフォルトの名無しさん
2008/07/13(日) 18:37:310729デフォルトの名無しさん
2008/07/13(日) 18:55:23わらた
このままバージョンが変わらないでいてくれたら
D-1とかD-2とかいう扱いでコードの配布が安定できて嬉しいな
0730デフォルトの名無しさん
2008/07/13(日) 19:00:230731デフォルトの名無しさん
2008/07/13(日) 19:02:170732デフォルトの名無しさん
2008/07/13(日) 19:06:18d1.0 vs d2.0
で組み合わせが四通りあるから困る
d1.0+phobosで開発してきたが、tangoのFiber使いたい俺としては
せめてphobosとtangoが共存してくれれば...
0733デフォルトの名無しさん
2008/07/13(日) 19:12:06FizzBuzz書いてみたいがtoStringってコンパイル時に動かないんだな
0734デフォルトの名無しさん
2008/07/13(日) 20:00:40っ std.metastrings
0735デフォルトの名無しさん
2008/07/13(日) 20:07:07ちなみに俺は140文字だった
0736デフォルトの名無しさん
2008/07/13(日) 20:18:48http://www.shinh.org/p.rb?FizzBuzz#D
に83バイトという記録がある。
いったいどんなコードなのやら。
0737デフォルトの名無しさん
2008/07/13(日) 20:24:29>>732 tangoがphobos準拠じゃないのが悪いんだよ
なんで自作ライブラリごときが標準ライブラリと共存できないんだってことだよw
0738デフォルトの名無しさん
2008/07/13(日) 20:33:210739デフォルトの名無しさん
2008/07/13(日) 20:40:02tangoはGCや配列キャストなどの言語の基幹部分も独自に持っていて、
phobosを置き換えるのが目的で作られてるから、共存できなくて当然。
0740デフォルトの名無しさん
2008/07/13(日) 21:39:01切り詰めて87文字
しかも数字が表示できない、中括弧使うと文字増えるしなぁー
import std.stdio;void main(){int i;while(i++<100)writef(i%3?"":"Fizz",i%3?"":"Buzz");}
0741デフォルトの名無しさん
2008/07/13(日) 21:44:04printf使えばもっと短くできるんじゃない?
0742デフォルトの名無しさん
2008/07/13(日) 21:55:04じゃあphobosが言語の基幹とライブラリの機能分担に失敗してる?
0743デフォルトの名無しさん
2008/07/13(日) 22:21:54これで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文字なんて…
0744デフォルトの名無しさん
2008/07/13(日) 23:16:42D言語研究室にファイバあった。
前に試したけど、ファイバの部分だけならコンパイル通るようにするのはそれほど難しくない。
0745デフォルトの名無しさん
2008/07/14(月) 01:40:530746デフォルトの名無しさん
2008/07/14(月) 02:13:17詳しくしらんが。
0747デフォルトの名無しさん
2008/07/14(月) 02:26:090748デフォルトの名無しさん
2008/07/14(月) 02:35:440749デフォルトの名無しさん
2008/07/14(月) 03:12:250750デフォルトの名無しさん
2008/07/14(月) 03:53:450751デフォルトの名無しさん
2008/07/14(月) 08:10:02char[] format(char[] format, ...)
{
Sprint!(char) sp = new Sprint!(char);
return sp.format(format, _arguments, _argptr);
}
とかやっても%がそのまま出力されちゃうんですが。
0752デフォルトの名無しさん
2008/07/14(月) 08:34:12tangoのフォーマットはC#と同じなのでそのようにやると良い。
0753デフォルトの名無しさん
2008/07/14(月) 10:31:52同時につかえるやつなんだ!しらんかった
両ライブラリの最新に対応してるのかなぁ
てかObjectクラスが違うはずなのに大丈夫なのかな
0754デフォルトの名無しさん
2008/07/14(月) 13:25:00問題が出たとしても、そういうことの解決をやるのがtangobosっていう擦り合わせのプロジェクトですよ。
0755デフォルトの名無しさん
2008/07/14(月) 13:43:000756デフォルトの名無しさん
2008/07/14(月) 14:09:00main.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>
0757デフォルトの名無しさん
2008/07/14(月) 15:07:12そうだったんですか。
ありがとうございました。
0758デフォルトの名無しさん
2008/07/14(月) 21:04:15http://www5.atwiki.jp/yaruhara/pages/74.html
0759デフォルトの名無しさん
2008/07/14(月) 23:56:39かなり気合入ってるな
0760デフォルトの名無しさん
2008/07/15(火) 05:11:03誰か治し方しりませんか。
0761デフォルトの名無しさん
2008/07/15(火) 07:04:24auto http = new HttpClient( HttpClient.Get, "http://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したデータが壊れてしまってるようです。
何が駄目なんでしょうか?
0762デフォルトの名無しさん
2008/07/15(火) 07:24:410763デフォルトの名無しさん
2008/07/15(火) 07:36:560764デフォルトの名無しさん
2008/07/15(火) 07:46:32中身をのぞいてみようと思ったんですが、何にもキャストができません。
あと、
無名関数内の引数dataのlengthは1716でlenは4323でした。
0765デフォルトの名無しさん
2008/07/15(火) 10:28:280766デフォルトの名無しさん
2008/07/15(火) 11:03:14再現コード
0767デフォルトの名無しさん
2008/07/15(火) 13:02:20無名関数が複数回呼ばれることを理解してない、ということかな?
無名関数内の引数dataは実際のデータが小分けになっている。
複数回呼ばれたときのdataを全部連結すると、お望みのデータになるよ。
0768デフォルトの名無しさん
2008/07/16(水) 01:25:29おおおおう。
できました。
ありがとうございました。
0769デフォルトの名無しさん
2008/07/16(水) 05:35:23http://codepad.org/zAwWfbs7
codepadはmetastrings使えないんだな
tangobos使ってるみたいだがバージョンが古いんだろうか
0770デフォルトの名無しさん
2008/07/16(水) 11:58:19std.string.toString() 使えば、toStr 要らなくね?
0771デフォルトの名無しさん
2008/07/16(水) 13:12:320772デフォルトの名無しさん
2008/07/17(木) 15:20:060773デフォルトの名無しさん
2008/07/17(木) 15:45:37それ以外ってあるかなぁ。
0774デフォルトの名無しさん
2008/07/17(木) 15:52:210775デフォルトの名無しさん
2008/07/17(木) 22:21:55Conduit.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.
これはいったい何をぐぐったらわかるんでしょうか。
0776デフォルトの名無しさん
2008/07/18(金) 00:48:33ldの引数で、-lDG-tango-ioの右側に-lDG-tango-coreが書いてない、ということだな、そのエラーメッセージは。
ldはライブラリの依存関係に沿って引数を書かないとリンクエラーになる。
0777デフォルトの名無しさん
2008/07/18(金) 09:24:16うそだろ
v[$-1]じゃねーの!?
0778デフォルトの名無しさん
2008/07/18(金) 10:09:25おまえは何を言っているんだ。
0779デフォルトの名無しさん
2008/07/18(金) 10:43:50777じゃないが俺が代弁しよう。きっとこういいたかったに違いない。
while (v.length)
{
func(v[$-1]);
v.length = v.length-1;
}
0780デフォルトの名無しさん
2008/07/18(金) 11:24:50お前凄いな。
0782773
2008/07/18(金) 16:54:03ROMってるだけだと疎くなっちゃうね。正直すまんかった。
0783デフォルトの名無しさん
2008/07/18(金) 18:38:340784デフォルトの名無しさん
2008/07/18(金) 20:09:01使ってるのはdsssなんですが、直すにはどの辺り調べるといいんでしょうか
0785776
2008/07/19(土) 00:21:44dsssは使ってないから、正確なところはわからない。
もし、読み込んでいるdsss.confにbuildflags=-llDG-tango-core -llDG-tango-io ... のような記述があるなら、書いてあるライブラリの順番が問題なので、それを依存関係に沿って(左のライブラリが右のに依存するように)並び替えればよいのだけど……。
0786デフォルトの名無しさん
2008/07/19(土) 22:25:320787デフォルトの名無しさん
2008/07/19(土) 22:40:32・両方ネイティブコード吐くし、どっちがあらゆる面で速いとは言えない。
・メモリ周りはGCある言語のほうが現実的に速くなるよ、と公式では主張されている
・コンパイル速度はDのほうが遙かに速い
・VC++なんかの商用コンパイラのほうが最適化は賢い(んじゃね?
・最適化部は同じだろうし、dmdならdmcと、gdcならgccと同じようなパフォーマンスになる(んじゃね?
下二つは適当。
0788デフォルトの名無しさん
2008/07/19(土) 22:51:01(ICCとかVC++になるとどうだろうか)
ただ最近のバージョンになると速度がやや落ちたみたい
ttp://shootout.alioth.debian.org/gp4/d.php
ttp://shootout.alioth.debian.org/debian/d.php
Dは本質的にかなり速度が出そうな言語ではある
コンパイラ屋が再設計したC++みたいなもんだから
0789デフォルトの名無しさん
2008/07/19(土) 23:24:50向き不向きがあるけど、開発速度はDのほうが圧倒的に早い…
という比較があった気がした。
ある課題をいろんな言語で解くコンテストがあって、それでDがGCと契約のおかげでいい成績出したって内容だった気がする
0790デフォルトの名無しさん
2008/07/20(日) 02:07:08複雑な数値計算とかなると、もう
0791デフォルトの名無しさん
2008/07/20(日) 16:41:09C++でどうしても生産性があげれなかったヘタレな俺
現状どうみても D>>C++ です。 本当にありがとうございます。
0792デフォルトの名無しさん
2008/07/21(月) 11:41:00143あたりの手順も試してみたけどダメだった。結局makeに逆戻りしちゃった。
なんか導入しやすいIDEないかな?2.0系使えるやつ
0793デフォルトの名無しさん
2008/07/21(月) 14:32:180794デフォルトの名無しさん
2008/07/21(月) 19:35:25_minitもundefinedと言われるし・・・
Win32 のサンプルが動かないとか心が折れそう。
0795デフォルトの名無しさん
2008/07/21(月) 23:59:48WinMainを使わずにmainを使えばいい。
インスタンスハンドルが欲しければGetModuleHandleで得られるし。
0796794
2008/07/22(火) 00:15:22本当はDLLを作りたいんだけど、DllMainのgc_initでこけてたので、
前段階としてWinMainで実験してみて、うまくいってないという話。
DLL以外ならmainでいいんだけどね。
紛らわしくてスマソ。
0797デフォルトの名無しさん
2008/07/22(火) 13:08:40http://www.techworld.com.au/article/253741/a-z_programming_languages_d
0798デフォルトの名無しさん
2008/07/22(火) 14:26:04> Telling you it can't be done means you're on the right track.
らしいですよ。
0799794
2008/07/22(火) 20:06:30スレ汚し失礼しました。
0800デフォルトの名無しさん
2008/07/22(火) 21:18:130801794
2008/07/22(火) 21:21:15DigitalMarsで検索してたら普通にあった。
0802デフォルトの名無しさん
2008/07/23(水) 18:22:54http://www.n-brain.net/
これ使ったことある人いるかな
0803デフォルトの名無しさん
2008/07/23(水) 18:26:45すまn
0804デフォルトの名無しさん
2008/07/23(水) 19:58:27そういえばウォルタンの顔を見たことがなかったという衝撃
0805デフォルトの名無しさん
2008/07/23(水) 21:59:170806デフォルトの名無しさん
2008/07/23(水) 22:06:10http://slashdot.jp/article.pl?sid=08/04/30/0830201
0807デフォルトの名無しさん
2008/07/23(水) 22:13:170808デフォルトの名無しさん
2008/07/23(水) 22:14:59ハゲである必要はないんか?
0809デフォルトの名無しさん
2008/07/23(水) 22:16:450810デフォルトの名無しさん
2008/07/23(水) 22:19:030811デフォルトの名無しさん
2008/07/24(木) 06:13:13好きに言語を設計するような仕事はできないという点では明察なんだよな。
その意味でウォルたんは好きに言語を設計してると思うから問題ない
0812デフォルトの名無しさん
2008/07/24(木) 06:36:53確かに好きに設計してるなwwww
0813デフォルトの名無しさん
2008/07/24(木) 09:34:070814デフォルトの名無しさん
2008/07/24(木) 10:55:230815デフォルトの名無しさん
2008/07/24(木) 12:46:450816デフォルトの名無しさん
2008/07/24(木) 15:21:05http://www.walterbright.com/ によると
「1979年にカリフォルニア工科大を卒業した」そうだから、
50代前半じゃね?
0817デフォルトの名無しさん
2008/07/24(木) 15:21:06だいたい50〜55くらいの範囲だな
0818デフォルトの名無しさん
2008/07/24(木) 18:31:200819デフォルトの名無しさん
2008/07/24(木) 18:35:160820デフォルトの名無しさん
2008/07/24(木) 22:48:310821デフォルトの名無しさん
2008/07/25(金) 00:00:46最後にリリースされたのいつだよ…
0822デフォルトの名無しさん
2008/07/25(金) 00:24:30・D言語に足りないのは髭
0823デフォルトの名無しさん
2008/07/25(金) 01:17:17module walter.hige;
int hige(){ return 0; }
0824デフォルトの名無しさん
2008/07/25(金) 01:22:240825デフォルトの名無しさん
2008/07/25(金) 01:36:390826デフォルトの名無しさん
2008/07/25(金) 01:38:170827デフォルトの名無しさん
2008/07/25(金) 02:59:060828デフォルトの名無しさん
2008/07/25(金) 03:46:48っていうか今や普及にIDEは必須だぜ・・・
0829デフォルトの名無しさん
2008/07/25(金) 04:06:17ttp://www.walterbright.com/garage/index.html
うぉるタンのひーお爺ちゃんは日本に来たよ
ttp://www.walterbright.com/trip/chas.html
ttp://www.norwichfreeacademy.com/fileadmin/user_files/museum/Spring_2007.pdf
ttp://www.norwichfreeacademy.com/fileadmin/user_files/museum/Website_pictures/Winter_2007.pdf
0830デフォルトの名無しさん
2008/07/25(金) 09:45:47{
typeof(this) opAssign(type other)
{
return this;
}
}
int main()
{
type[string] map;
type hoge;
map["name"] = hoge;//Error :ArrayBoundsError
return 0;
}
何でエラーになるの?教えてエロい人!
0831デフォルトの名無しさん
2008/07/25(金) 12:03:320832デフォルトの名無しさん
2008/07/25(金) 12:34:350833デフォルトの名無しさん
2008/07/25(金) 12:42:40前にインテリセンスをがんばってた人がいたけれど.
0834デフォルトの名無しさん
2008/07/25(金) 13:30:31そんなのにリソース割かれてコンパイラの完成遅れられたら困る。
0835デフォルトの名無しさん
2008/07/25(金) 13:38:590836デフォルトの名無しさん
2008/07/25(金) 13:54:21map["name"] = hoge;
は
map["name"].opAssign(hoge);
と解釈される。
map["name"]でエラー
0837デフォルトの名無しさん
2008/07/25(金) 16:20:500838デフォルトの名無しさん
2008/07/25(金) 17:31:44別にウォルたんに作れとは言わんw
0839デフォルトの名無しさん
2008/07/25(金) 18:49:49>>797より
>Do you still consider D to be a language "under development"?
> A language that is not under development is a language that is not being used.
> D is under development, and will stay that way as long as people use it.
> C++, Java, Python, PERL, etc., are also widely used and are still under development.
「IDE? もうあるじゃん」的な発言からも分かるように、なんとなく、
うぉるタンにはDをみんなに広めてやろうっていう野心が足りないんだな。
0840デフォルトの名無しさん
2008/07/25(金) 18:54:570841デフォルトの名無しさん
2008/07/25(金) 19:15:060842デフォルトの名無しさん
2008/07/25(金) 22:14:450843デフォルトの名無しさん
2008/07/26(土) 00:18:530844デフォルトの名無しさん
2008/07/26(土) 00:27:03少なくともうぉるたんについてはこのスレが一番だと思うが。
0845デフォルトの名無しさん
2008/07/26(土) 02:08:440846デフォルトの名無しさん
2008/07/26(土) 02:25:29void setDestDir(char[] pathname)
{
srcpath = pathname;
}
になってるんだけど、
dstpath = pathname;
だとおもうんだ。
みんなの環境はどう?
0847デフォルトの名無しさん
2008/07/26(土) 03:09:492.017のPhobosでも同様になってる。
よく見つけた。Bugzillaへ行っとけ!
0848デフォルトの名無しさん
2008/07/26(土) 12:36:58アカウント無いし、作りたくないから頼んだ。
dstpath を修正しても何の効果もないからなんとかしろーってのもいっといてplz
0849デフォルトの名無しさん
2008/07/26(土) 13:08:04std.coverなんて使ってないしどうでもいい
0850デフォルトの名無しさん
2008/07/26(土) 20:00:080851デフォルトの名無しさん
2008/07/26(土) 22:46:01D言語ラブな人にD言語の魅力を語ってほしい
ちなみに今までは、基本的にスクリプト言語(Ruby)でいろいろやってました
C言語は大学の演習のみ、C++やC#は未経験
0852デフォルトの名無しさん
2008/07/26(土) 23:57:33Rubyで間に合ってたならそっち使ってた方がいいと思う
D言語の凄まじさはC++をある程度やってないとわかりにくいんじゃないかな?
API叩きたいとかでも色々ポーティングしなきゃならない状況だからね〜
0853デフォルトの名無しさん
2008/07/27(日) 00:03:40一般的な部分では、スタンドアロンの実行ファイルとか、ネイティブ吐く故の速度とかか。必要ないなら必要ないかなあ。
でも個人的に最大の魅力は更新待ちのwktk感。
既存のコード通らなくなる変更躊躇わないからなうぉるたん。標準ライブラリが壊れたりするんだぜ?
(ちなみに当方ややM)(でもこのスレに仲間は多いと思ってる)
0854デフォルトの名無しさん
2008/07/27(日) 00:31:44スクリプト言語以外をそんなに触ってないなら、静的型付けとかの不自由さを感じるかも。
Dの良いところはスクリプト言語でもないのに、いろんな機能を使えるところ。他の言語に比べて多機能だと思う。
0855デフォルトの名無しさん
2008/07/27(日) 00:38:15俺の場合、WindowsとLinuxの両方で使うというのがあったから、Dという選択になった。
Windows環境だけというのなら、C#の方がライブラリその他安定していて、いいと思う。
散々言われていた起動の遅さも、いつの間にか気にならないくらい速くなってるし。
ただ、LinuxのmonoはD以上に地雷が多すぎなんで、マルチプラットホームならDかなと。
C++はコンパイル速度が速ければ使うんだが、Dの速さに慣れちゃうとその遅さに耐えきれなくなってしまう。
まあ、上記はC並に速く実行する言語が使いたいという前提あっての話だから、多少遅くてもいいというのであれば、Javaでもいいのかもしれない。
Dの欠点は標準ライブラリが信用できないこと。
標準ライブラリを自力で何とかできないとDを扱うのは難しい。
0856デフォルトの名無しさん
2008/07/27(日) 00:41:46> でも個人的に最大の魅力は更新待ちのwktk感。
ナカーマ
0857デフォルトの名無しさん
2008/07/27(日) 00:47:040858デフォルトの名無しさん
2008/07/27(日) 00:53:390859デフォルトの名無しさん
2008/07/27(日) 01:12:52タプルを関数から返せるようにする
opCastをまともにする
うぉるたん頼むからこのへん実装してくれ><
0860デフォルトの名無しさん
2008/07/27(日) 01:57:430861デフォルトの名無しさん
2008/07/27(日) 02:00:40みたいなやつじゃね
0862デフォルトの名無しさん
2008/07/27(日) 02:17:44int a;
ref(int) b = a; // 型コンストラクタ
ref(int) func(ref int p) { // 参照渡し・参照戻し
return p;
}
auto c = func(a); // is(typeof(c) == ref(int))
</俺:妄想>
0863デフォルトの名無しさん
2008/07/27(日) 02:18:38手直し箇所が多すぎて、気軽にCのライブラリを使いたいと思えない。
0864デフォルトの名無しさん
2008/07/27(日) 04:31:450865デフォルトの名無しさん
2008/07/27(日) 04:36:28ttp://f17.aaa.livedoor.jp/~labamba/?BugTrack
とりあえず張っておくからw
0866デフォルトの名無しさん
2008/07/27(日) 05:14:19まかせた
0867デフォルトの名無しさん
2008/07/27(日) 06:19:14とりあえずなんかMemory.diでエラーが出る。
ちょっとソースのぞいてみたらなんか明らかにおかしいところがあった
130: enum BlkAttr; : uint
131: {
0868デフォルトの名無しさん
2008/07/27(日) 08:29:18せっかく言語がunittestとかDbCとか用意してるのに全然活用してないじゃん
うぉるたんがたまにテスト通さないのは破壊的な変更しまくるからだろうけど
0869851
2008/07/27(日) 12:55:38とりあえず、更新を待ってwktkする言語だというのは伝わってきた
面白そうなので少し触ってみようと思います
0870デフォルトの名無しさん
2008/07/27(日) 15:43:10うぉるたんの跡を継ごうっていう人は出てくるのだろうか。
0871デフォルトの名無しさん
2008/07/27(日) 15:46:190872デフォルトの名無しさん
2008/07/27(日) 16:18:50激しく同意。単体テスト用意しれと思うなぁ。
復帰テストはしているようだけど膨大だからかなりの時間かかってそうだし。
0873デフォルトの名無しさん
2008/07/27(日) 16:23:250874デフォルトの名無しさん
2008/07/27(日) 19:26:32それは
static int a;や
int* a;と似たような宣言で
ref int b; がスマートな気がする
その場合は
a == c って事でいいのかな
ポインタを使わないようにした代わりにこれがあればポインタの代用がかなり効きそうだな
GC周りに矛盾が生じないなら入れてほしいな
0875デフォルトの名無しさん
2008/07/27(日) 19:45:10int* a;
はどっちかっていうと、
const int a; // constは変数を修飾
よりは
const(int) a; // constは型を修飾
に近いんじゃない?
それで、refは変数の情報な気がするから、ref(T)はいらないと思う。
0876デフォルトの名無しさん
2008/07/27(日) 19:58:19で、ウィンドウプロシジャの中から例外を投げて、
main関数に書いたcatchで拾おうとすると失敗するんだけど、こういうもんだっけ?
0877デフォルトの名無しさん
2008/07/27(日) 20:03:18そういうもん。
コードの流れは、
メッセージループ -> | user32 | -> ウィンドウプロシージャ
なんで、例外は戻ってこれない。
0878876
2008/07/27(日) 20:17:30即レス感謝。
前いけてた気がしたのは漏れの気のせいでした。
べんきょんなったす。
0879デフォルトの名無しさん
2008/07/27(日) 20:55:110880デフォルトの名無しさん
2008/07/27(日) 20:56:21明示的に呼び出せば、そんなことにはならなかった
アラインメントの問題?GCの問題?
0881デフォルトの名無しさん
2008/07/27(日) 21:01:53コード付きで頼む
0883デフォルトの名無しさん
2008/07/27(日) 22:46:18いちいち宣言しなきゃいけないって面倒だなとおもた
0884デフォルトの名無しさん
2008/07/27(日) 22:49:31ラムダ式でおk
0885デフォルトの名無しさん
2008/07/27(日) 23:03:160886デフォルトの名無しさん
2008/07/28(月) 00:33:49やはり向こうは日本と神の感覚が違うから気軽に使えないのかな
0887デフォルトの名無しさん
2008/07/28(月) 00:57:59あんまり聞かない気がする。
0888デフォルトの名無しさん
2008/07/28(月) 01:01:340889デフォルトの名無しさん
2008/07/28(月) 01:04:050890デフォルトの名無しさん
2008/07/28(月) 01:08:01… oppon 〜は「…を〜と組み合わせて」という意味になる今作った単語
0891デフォルトの名無しさん
2008/07/28(月) 01:14:40なんでもできる証拠なの〜
0892デフォルトの名無しさん
2008/07/28(月) 01:28:190893デフォルトの名無しさん
2008/07/28(月) 02:01:32import tango.io.Console;
import tango.io.FileSystem;
import Path = tango.io.Path;
void main(char[][] args) {
auto dir = Path.parse(FileSystem.toAbsolute(Path.standard(args[0]))).path;
Cout(dir).newline;
}
自分の実行ファイルのディレクトリのフルパスが欲しいとき、もうちょと短く書けないかな。
0894デフォルトの名無しさん
2008/07/28(月) 05:11:20dwtのはずなのにアナウンス
中身はちゃんと別みたいだけど
0895デフォルトの名無しさん
2008/07/28(月) 16:00:33というか、動かないんだけど
0896デフォルトの名無しさん
2008/07/28(月) 16:15:140897デフォルトの名無しさん
2008/07/28(月) 17:49:37記述が長ったらしい代わりにバイナリが小さくなるのがTangoの芸風でしょ。
ちなみにPhobosなら import path; して dirname(rel2abs(args[0])) だ。
0898デフォルトの名無しさん
2008/07/28(月) 23:53:45C# の 1.0 と 2.0 ぐらいちがったりするの?
0899デフォルトの名無しさん
2008/07/29(火) 00:03:46dmd2 前進的で素晴らしい変更によってソースを書き直す必要が出来る
このスレを読む限りMは2を使った方がいいらしいぞ
0900デフォルトの名無しさん
2008/07/29(火) 00:10:10安定性求めるなら他の言語を当たったほうがいいだろうし。
0901デフォルトの名無しさん
2008/07/29(火) 00:20:340902デフォルトの名無しさん
2008/07/29(火) 00:26:29http://www.kmonos.net/alang/d/2.0/features2.html
に出てる。
0903デフォルトの名無しさん
2008/07/29(火) 02:02:27喧嘩売られてるような気がするのは俺の気のせいだろうな
移行しない理由が聞きたいんだよな
0904デフォルトの名無しさん
2008/07/29(火) 02:04:100905デフォルトの名無しさん
2008/07/29(火) 02:12:212.0に乗り換えてみたいところだがね。
エラーが回避できなくてあきらめた。
0906デフォルトの名無しさん
2008/07/29(火) 07:38:52どう考えても気のせいです
0907デフォルトの名無しさん
2008/07/29(火) 07:39:36popenだけはdmd1にも入れてほしい
0908デフォルトの名無しさん
2008/07/29(火) 09:38:02クラス名とどっちがいい?
0909デフォルトの名無しさん
2008/07/29(火) 11:51:29時期尚早な過最適化は悪 by Effective C++ ?
0910デフォルトの名無しさん
2008/07/29(火) 11:57:08>909
"premature optimization is the root of all evil." なら、出典はKnuth様 (1974年)。
0911デフォルトの名無しさん
2008/07/29(火) 12:46:20この喜びが毎月のように得られるのはDくらい
それが私がDを使う理由・・・信じて
0912デフォルトの名無しさん
2008/07/29(火) 14:28:09そんな複雑な変更でもない気がするんだけど、
うぉるたんは他にやりたいことあるんだろうか。
0913デフォルトの名無しさん
2008/07/29(火) 16:13:480914デフォルトの名無しさん
2008/07/30(水) 00:59:010915デフォルトの名無しさん
2008/07/30(水) 22:25:38あたりまえかもしれんが、scopeとかで回避できんから
すんごい困った
0916デフォルトの名無しさん
2008/07/31(木) 00:26:38これのDemoすごいなあ
0917デフォルトの名無しさん
2008/07/31(木) 00:42:39結構楽しいんだよなこれ
0918デフォルトの名無しさん
2008/07/31(木) 01:49:170919デフォルトの名無しさん
2008/07/31(木) 02:24:570920デフォルトの名無しさん
2008/07/31(木) 08:26:23if(true){}
}
void f(){
mixin Hoge!()
}
なんでif使えないの〜泣
0921デフォルトの名無しさん
2008/07/31(木) 08:34:29つ static if
0922デフォルトの名無しさん
2008/07/31(木) 11:35:460923デフォルトの名無しさん
2008/07/31(木) 12:43:23C++er
Der
なんちゃって、えへへ
0924デフォルトの名無しさん
2008/07/31(木) 13:02:18PythonistaにならってDistaはどう?
すくなくとも発音はしやすいよw
0925デフォルトの名無しさん
2008/07/31(木) 13:41:25{
return *this;
}
0926デフォルトの名無しさん
2008/07/31(木) 14:36:01やDなぁそんなの
0927デフォルトの名無しさん
2008/07/31(木) 15:33:240928デフォルトの名無しさん
2008/07/31(木) 16:08:02という案を検討してるらしい。
http://bartoszmilewski.wordpress.com/2008/07/30/sharing-in-d/
これだと現行のコーディングとはスタイルが随分かわっちゃうけど、
マルチスレッドの安全性を考えたら良い案だと思う。
0929デフォルトの名無しさん
2008/07/31(木) 17:00:35Dildo
発音しやすいよ
0930デフォルトの名無しさん
2008/07/31(木) 17:12:172Der
0931デフォルトの名無しさん
2008/07/31(木) 17:17:020932デフォルトの名無しさん
2008/07/31(木) 17:32:210933デフォルトの名無しさん
2008/07/31(木) 18:00:29むしろグローバル変数いらなくね?
あと例えばプロパティはsynchronized付きになるとか(俺には善し悪しがよくわからんけど)
これからのマルチコアの世界に向けて最適化していった方がいいのかも
0934デフォルトの名無しさん
2008/07/31(木) 18:17:450935デフォルトの名無しさん
2008/07/31(木) 18:33:27マルチスレッドプログラミングの安全性ももっとコンパイル時に保証できないのかな
0936デフォルトの名無しさん
2008/07/31(木) 22:24:48pureなら触る変数はプロシージャからのスタックの積み方で決まるから、
そのへんはもう少し楽になる気がする
0937デフォルトの名無しさん
2008/08/01(金) 00:14:520938デフォルトの名無しさん
2008/08/01(金) 00:24:55{
return new typeof(this)(args);
}
newすら書くのが面倒。そんなあなたに
0939デフォルトの名無しさん
2008/08/01(金) 00:26:02もうすこし緩めるとスレッドローカル変数しか触らなければ安全だと思うが、これは未実装。
0940924=928
2008/08/01(金) 01:51:55ああ、そっちの方が全然いいですね。
ところでGtkDのRC1が8月1日リリース予定なわけだがwktk
0941デフォルトの名無しさん
2008/08/01(金) 15:00:45template Constructor{
>>938
}
class A{
mixin Constructor;
}
void main(){ A x = A(); }
そういえばstructとclassをコンパチブルにできるのかなー
0942デフォルトの名無しさん
2008/08/01(金) 18:37:170943デフォルトの名無しさん
2008/08/01(金) 19:04:45ずっと無いと思うよ?
「構造体はPODであるべき」って頑なになってるから。
static opCallで代用するしかないんじゃね
0944デフォルトの名無しさん
2008/08/01(金) 19:20:33--- main.d ---
import func;
void main(){ line(); }
--- fund.d ---
void line(uint lineNum = __LINE__){ }
$ dmd main.d func.d
__LINE__
Internal error: e2ir.c 612
0945デフォルトの名無しさん
2008/08/01(金) 19:22:41void line(uint lineNum = __LINE__){}
void main(){ line(); }
0946デフォルトの名無しさん
2008/08/01(金) 22:10:27俺の記憶違いかな?
0947デフォルトの名無しさん
2008/08/01(金) 23:16:190948デフォルトの名無しさん
2008/08/02(土) 01:59:50std/c/windows/com.d
interface IUnknown
{
HRESULT QueryInterface(IID* riid, void** pvObject);
ULONG AddRef();
ULONG Release();
}
ではなくて、
interface IUnknown
{
static HRESULT QueryInterface(IID* riid, void** pvObject);
static ULONG AddRef();
static ULONG Release();
}
が正しいような気がする。
後者じゃないとビルドできないし。
0949デフォルトの名無しさん
2008/08/02(土) 14:25:36んなばかなあ
0950デフォルトの名無しさん
2008/08/02(土) 14:35:23何で前者でエラーになるのか知らないけど、staticは無いと断言できる。
0951デフォルトの名無しさん
2008/08/02(土) 14:44:560952デフォルトの名無しさん
2008/08/02(土) 23:13:01エラー回避のためにstaticにしたんだが、
やっぱりおかしいのか。
libphobos/std/c/windows/com.d:240: error: '*LTHUNK0' aliased to undefined symbol '_D3std1c7windows3com9ComObject14QueryInterfaceMWPS3std1c7windows3com4GUIDPPvZi'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK1' aliased to undefined symbol '_D3std1c7windows3com9ComObject6AddRefMWZk'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK2' aliased to undefined symbol '_D3std1c7windows3com9ComObject7ReleaseMWZk'
みたいなエラーがでるんだが、
LTHUNK0なんてソースのどこにも出てこないし謎。
試しにいろいろいじって、たまたまstaticにしたらうまくいったという話。
まあ、comプログラミングなんかしないから、
別に通ればなんでもいいのだが。
0953デフォルトの名無しさん
2008/08/03(日) 13:39:36const(hoge, fuga)
{
// hoge, fugaは変更禁止
}
// 変更OK
0954デフォルトの名無しさん
2008/08/03(日) 13:54:21int hage = 42;
(const typeof(hage) hage = hage) {
writeln(hage); // 42
hage++; // error
}();
}
dirtyすぎる…
0955デフォルトの名無しさん
2008/08/03(日) 14:06:480956デフォルトの名無しさん
2008/08/03(日) 14:17:12pureとか予約語になってるんだし,要望したら入れてくれるんじゃね?
0957953
2008/08/03(日) 14:41:00バグ回避目的なのに手段が真逆に向かっている様なw
0958デフォルトの名無しさん
2008/08/03(日) 15:09:29よくわかりませんが、つたない英語で投稿してみました。
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.bugs&article_id=14747
適当なので、怒られてたり、意思が通じてなかったりしたら
すいませーんっと。
0959デフォルトの名無しさん
2008/08/03(日) 15:14:46思ったけど、いいや。やる気ないので、スマヌです。
0960デフォルトの名無しさん
2008/08/03(日) 15:16:56>846
>847
>848
ここらへんの話です。
暑くて駄目だwww
0961デフォルトの名無しさん
2008/08/03(日) 16:13:570962デフォルトの名無しさん
2008/08/03(日) 16:43:12既出みたいなもんだけど関数のconst引数じゃダメなの?
class A{const void pp(){}}
void f(const A a){
a.pp;
}
void main(){
A a = new A;
f(a);
}
0963デフォルトの名無しさん
2008/08/03(日) 16:45:56int i=1;
g(i);
void g(const ref int i){
i++; // error
}
0964デフォルトの名無しさん
2008/08/03(日) 16:47:260965デフォルトの名無しさん
2008/08/03(日) 17:40:49http://codepad.org/TqJ2UHtm
これだと不正なのに…
http://codepad.org/mpTCvhlO
0966デフォルトの名無しさん
2008/08/03(日) 19:27:30D1.0のデリゲートもレキシカルクロージャじゃないだけで、ちゃんとしたクロージャだよ。
もっとも、環境を持ち運ばないから変数aの寿命が来た時点でクロージャは無効になる。
0967966
2008/08/03(日) 19:40:15aのスコープは終わってるので本来は無効。
0969デフォルトの名無しさん
2008/08/04(月) 06:10:15次スレよろ
0970デフォルトの名無しさん
2008/08/04(月) 08:52:36GCをマイクロ秒指定で動作させられるといいな
例えばだが
genCollect(1000);
で最大で1秒間GCに処理を渡す
戻り値はGCにかかった時間、失敗したら0とか-1だとか
重いけど合間を縫ってGC動かしたい
という時に便利
↓次スレよろ
0971デフォルトの名無しさん
2008/08/04(月) 10:08:48またの機会にどうぞ。。。
デフォルトの名無しさん (1)
しょぼーん
↓次スレよろ
0972デフォルトの名無しさん
2008/08/04(月) 10:30:15http://pc11.2ch.net/test/read.cgi/tech/1217813098/
0973デフォルトの名無しさん
2008/08/04(月) 15:03:540974デフォルトの名無しさん
2008/08/04(月) 15:42:420975デフォルトの名無しさん
2008/08/04(月) 15:45:06名前かけるのは構造体イニシャライザか連想配列リテラル…
構造体リテラルと構造体イニシャライザの構文合わせて欲しかったんだけど、もうむりなのかなあ。
0976デフォルトの名無しさん
2008/08/04(月) 15:50:10D言語に不可能という文字はない(破壊的変更に関しては)
売り込めばあるいは
0977デフォルトの名無しさん
2008/08/06(水) 12:06:23{
this.tupleof = other.tupleof;
}
typeof(this) dup()
{
return new typeof(this)(this);
}
埋め支援
0978デフォルトの名無しさん
2008/08/06(水) 13:41:55http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0979デフォルトの名無しさん
2008/08/06(水) 14:03:36http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0980デフォルトの名無しさん
2008/08/06(水) 14:05:27http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0981デフォルトの名無しさん
2008/08/06(水) 14:05:40http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0982デフォルトの名無しさん
2008/08/06(水) 14:07:59http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0983デフォルトの名無しさん
2008/08/06(水) 14:07:59http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0984デフォルトの名無しさん
2008/08/06(水) 14:07:59http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0985デフォルトの名無しさん
2008/08/06(水) 14:07:59http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0986デフォルトの名無しさん
2008/08/06(水) 14:07:59http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0987デフォルトの名無しさん
2008/08/06(水) 14:08:00http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0988デフォルトの名無しさん
2008/08/06(水) 14:08:00http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0989デフォルトの名無しさん
2008/08/06(水) 14:08:00http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0990デフォルトの名無しさん
2008/08/06(水) 14:08:00http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0991デフォルトの名無しさん
2008/08/06(水) 14:08:00http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0992デフォルトの名無しさん
2008/08/06(水) 14:08:01http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0993デフォルトの名無しさん
2008/08/06(水) 14:08:00http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0994デフォルトの名無しさん
2008/08/06(水) 14:08:01http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0995デフォルトの名無しさん
2008/08/06(水) 14:08:02http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0996デフォルトの名無しさん
2008/08/06(水) 14:08:02http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0997デフォルトの名無しさん
2008/08/06(水) 14:08:02http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0998デフォルトの名無しさん
2008/08/06(水) 14:08:02http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
0999デフォルトの名無しさん
2008/08/06(水) 14:08:02http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
1000デフォルトの名無しさん
2008/08/06(水) 14:08:02http://pc11.2ch.net/test/read.cgi/tech/1217813098/
9 :デフォルトの名無しさん [↓] :2008/08/06(水) 03:04:31
前スレっていつになったら埋まるの?
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。