たまにis式が全能に見える
wxDってD2に対応してないのか... →じゃあwxWidgetをC++から呼び出せばいいんじゃね? そんで、それを独自にD2から呼び出せばいいんじゃね? →あれ?これwxDとやってること同じじゃね? →つーか、DのC++へのインターフェイスがしっかりしてればこんなに苦労しなくてもいいんじゃね? →さっさと対応しろやゴルァ!!
D2対応してたよ 昔は
俺はD言語とクリスマスを過ごすわ
あしたからほんきだす。
そろそろ本気になるのか
おれはほんきだぞ。いいのか。
おまえらが本気になったら俺も本気になる
行き止まり感どうにかならんの
破壊的変更が無くなるのは良いことじゃないか 仕様が固まれば普及するよ
たしかに仕様がいつまでも固まらないのは嫌だな
D3期待sage
D2の仕様が固まっても、D使いが食いつくのは破壊的変更の繰り返されるD3になるんだろうな 現状のD1とD2の関係みたいに
つーか現状でも1.0使ってる奴がまだいる、みたいなことになるから 正直なとこ安定バージョンとか作らないで欲しいくらいだ。
本当はD2使いたいけどライブラリが… あまつさえtangoとか死んでも使いたくないけどライブラリが…
version(DMD2xxx) { ... } version(DMD2xxy) { ... }
2.051のswitchってなんか変わった? ↓"A"が出力されるのを期待したんだけど"D"が出力されてる auto hoge="aaa"w; switch(hoge) { case "aaa": writeln("A");break; case "bbb": writeln("B");break; case "ccc": writeln("C");break; default: writeln("D"); }
2.050までだとUTF8文字列とUTF16文字列の比較って一致するの?
972 :
970 :2010/12/26(日) 23:47:38
>>971 意識してなかったけど一致しなかったはず。
ただswitchって型推論で
switch(T) {
case T:
...
}
になると認識してたんだけど勘違いなのかな。
auto hoge="aaa"w;
switch(hoge) {
case "aaa"w:
writeln("A");break;
case "bbb"w:
writeln("B");break;
case "ccc"w:
writeln("C");break;
default:
writeln("D");
}
wつけても動かんのはわけわからん。
trunkではちゃんと動いてるよ? >dmd -run a Max # of fixups = 29 1 >type a.d import std.stdio; void main() { auto s = "hoge"w; switch (s) { case "hoge"w: writeln("1"); break; default: writeln("0"); } }
すみません、オーバーロードした関数をテンプレートへ明示的に渡す方法はどうやるのでしょう? c++だとキャストでいけたんですが。。。 class Test { int x; int getX() { return x; } int getX(int mx) { return mx+x; } } void func(F...)(){ // 関数名や引数を受けていろいろと } void main() { func!(Test.getX)(); // ←Test.getX() でインスタンス化される func!(cast(int function(int))&Test.getX); // ←コンパイルエラー int function(int) f = &Test.getX; func!(f)(); // ←理想はコレに近いが関数名"f"が渡されてしまう }
976 :
975 :2010/12/28(火) 10:56:37
>>975 まず、functionじゃなくて、delegateじゃないだろうか?
次に、テンプレートのインスタンス化の時に、!()には変数の値は渡せないぜ?
(コンパイル時に決まる、整数型・浮動小数点型・文字列型は除く)
もし値渡しをやるなら、テンプレートの宣言は、
void func(F...)(F f) もしくは void func(alias F...)()
と、するべき。(後者は厳密には値渡しじゃないが)
今回は後者にすれば解決?
978 :
977 :2010/12/28(火) 12:24:01
あれ・・・ タプルとaliasは同時に宣言できないのかな・・・? まあ、いいや。
979 :
977 :2010/12/28(火) 13:37:33
>>977 遅くなってスミマセン。
細かいことを説明すると、Luaの関数登録を自動でやろうとしてます。
luabindに近いことをやりたいと。
他人様のブログですが、こんな感じです。
http://d.hatena.ne.jp/scior/20100824/1282660955 テンプレートの部分は本来は下記のようになってまして、func内では関数の自動生成をさせてます。
template regist(T, F...) {
string func() {
}
mixin(func);
void regist(T t ) {
}
}
Fには様々な関数を突っ込みますので、alias Fではコンパイルエラーになりました。
delegateを受ける形は上記のとおり関数生成の過程でNG。
delegateかfunctionかは別段不要なので、とりあえずでfunctionにしています。
ともあれc++と同じ指定ができない部分についてどうしたものかと。。。
981 :
デフォルトの名無しさん :2010/12/28(火) 14:59:20
traitsにFieldTypeTupleのように型タプルを取り出すのではなくフィールドのシンボル一覧を取り出すようなものはありますか?
これ? __traits(allMembers, T)
983 :
デフォルトの名無しさん :2010/12/28(火) 16:17:50
>>982 自分が定義したクラスのメンバ関数等を除くフィールドのみを取得したいのです。
allMembersだとメンバ関数やコンストラクタ等、余計なのが取れてしまって具合が悪いんですよね。
984 :
977 :2010/12/28(火) 17:06:29
>>980 まさかの難題。
ウォルたんに聞けば一発なんだろうけどなー。英語出来ないしなー。
もう少し調べる。
985 :
977 :2010/12/28(火) 17:25:36
986 :
977 :2010/12/28(火) 17:40:07
dlua死んでると思ったらluadってのが活発になってる。 これだからDはやめられんぜ。
988 :
977 :2010/12/28(火) 17:57:14
989 :
980 :2010/12/28(火) 18:09:45
すみません、大掃除で帰宅後確認しますです。助力感謝!
>>986 これは関数情報が入ってる構造体(thisと関数が入ってる)のアドレスじゃないかな
f.funcptrに関数そのもののアドレスがある
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
Dが人類の枠を超えてる事なんて周知の事実だと思ってた
ピロートーク
996 :
977 :2010/12/28(火) 20:57:24
ごめんスレ間違えた
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。