D言語 Part16
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/11/18(日) 23:00:35過去スレは >>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フロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)
■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
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の入門講座)
0002デフォルトの名無しさん
2007/11/18(日) 23:01:10Part15 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デフォルトの名無しさん
2007/11/18(日) 23:01:47D言語なら俺に聞け
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デフォルトの名無しさん
2007/11/18(日) 23:20:40いちおつ
0005デフォルトの名無しさん
2007/11/18(日) 23:28:41ちゃんと前スレ冒頭の話を覚えててくれたみたいだな
>>1 乙
0006デフォルトの名無しさん
2007/11/18(日) 23:34:380007デフォルトの名無しさん
2007/11/18(日) 23:53:150008デフォルトの名無しさん
2007/11/19(月) 00:02:01static void delegate() opCall(){
return {writefln(">>",no,"乙");};
}
}
Otsu!(1)()();
0009デフォルトの名無しさん
2007/11/19(月) 00:41:16http://pc2.2ch.net/test/read.cgi/tech/1070169122/
0010デフォルトの名無しさん
2007/11/19(月) 02:11:37ここのdSFMTを系列をインスタンスとするクラスとしてポートしてみたが、なんか物足りないなあ。
Boost::randomみたいな使い勝手を考えていたが……tangoにそんな実装もあった気がするが……
スレッドセーフな擬似乱数生成機って、状態に触るところをsynchronizedでくくればいいのかしら?
0011デフォルトの名無しさん
2007/11/19(月) 12:41:20一体どういう理由なんでしょうか。
単にどこで落ちてるか調べてるだけのtest1,test2って
出力してるだけなんですが。
0012デフォルトの名無しさん
2007/11/19(月) 12:49:32よくわからない異常終了の原因が、-Oスイッチによる最適化だったことがある。
0013デフォルトの名無しさん
2007/11/19(月) 13:03:03ImageListを自作しただけなんですが・・・・・
tango+dflでのソースです。
module imageList;
private import dfl.all;
private import tango.io.Stdout,tango.io.FilePath,tango.sys.win32.Types, tango.sys.win32.UserGdi;
class ImageList
{
HIMAGELIST list;
HANDLE cont;
this(HANDLE cont)
{this.cont = cont;
Stdout.formatln ("test");
this.list = ImageList_Create(16,16, ILC_COLOR32 | ILC_MASK ,0,0);
Stdout.formatln ("test1");
SendMessageW(cont , 4361, 0, cast(int)this.list);
}
public:
void add(char* ifile)
{
short i = 0;
Stdout.formatln ("test2");
HICON icon = ExtractAssociatedIconA(Application.getInstance(), ifile,i);
Stdout.formatln ("test3");
ImageList_ReplaceIcon( this.list ,-1, icon );
Stdout.formatln ("test4");
}
}
0014デフォルトの名無しさん
2007/11/19(月) 19:27:32特に何処もいじってないんですが、
落ちなくなりました・・・・。
0015デフォルトの名無しさん
2007/11/20(火) 05:29:540016デフォルトの名無しさん
2007/11/20(火) 06:44:090017デフォルトの名無しさん
2007/11/20(火) 12:21:100018デフォルトの名無しさん
2007/11/20(火) 13:11:440019デフォルトの名無しさん
2007/11/20(火) 16:26:400020デフォルトの名無しさん
2007/11/20(火) 16:50:370021デフォルトの名無しさん
2007/11/20(火) 17:43:270022デフォルトの名無しさん
2007/11/20(火) 19:49:250023デフォルトの名無しさん
2007/11/20(火) 20:03:310024デフォルトの名無しさん
2007/11/20(火) 20:20:110025デフォルトの名無しさん
2007/11/20(火) 20:34:200026デフォルトの名無しさん
2007/11/20(火) 21:46:170027デフォルトの名無しさん
2007/11/22(木) 00:02:480028デフォルトの名無しさん
2007/11/22(木) 19:16:30やっとできました。
これが噂のテンプレートと言う奴ですね・・・
ありがとうございました。
0029デフォルトの名無しさん
2007/11/22(木) 20:43:05toUtf8(123456789);
で、できるよ。
0030デフォルトの名無しさん
2007/11/22(木) 21:59:17変更履歴でバグフィクスばかりしてて仕事で提案もできないよ
0031デフォルトの名無しさん
2007/11/22(木) 22:06:220032デフォルトの名無しさん
2007/11/23(金) 00:15:180033デフォルトの名無しさん
2007/11/23(金) 00:22:550034デフォルトの名無しさん
2007/11/23(金) 01:11:080035デフォルトの名無しさん
2007/11/23(金) 03:00:17例えばtxはライブラリ化してあるからわざわざコンパイルしてくれなくてもいい、という時どうやってそれを教えてあげたらいいの?
別に問題になるわけじゃないんだけどなんかやたら無駄がある気がして凄く気分が悪い……。
0036デフォルトの名無しさん
2007/11/23(金) 03:52:41dmd\etc\rebuild\phobos
をテキストエディタで開いて何か思うところはないだろうか?
…俺もよく知らないからここまでしか言えない。
0037デフォルトの名無しさん
2007/11/23(金) 04:02:410038デフォルトの名無しさん
2007/11/23(金) 19:02:32dmd 2.007で
interface hoge{
int test();
}
class fuga:hoge{
int test(){return 5;}
}
void main(){
hoge[] test;
fuga[] test2;
test2.length = 1;
test2[0] = new fuga();
test = cast(hoge[])test2;//明示的にキャストしないとエラー
test[0].test();
}
ってやるとコンパイルは通るが実行時にtest.fugaって表示される。
配列だと継承の意味が無くなるのはかなり困るんだが
0039デフォルトの名無しさん
2007/11/23(金) 19:05:370040デフォルトの名無しさん
2007/11/23(金) 19:26:28?
0041デフォルトの名無しさん
2007/11/23(金) 19:29:06根本的に間違ってるよ。
import std.stdio, std.conv;
interface I { }
class C : I { }
void main(string[] args) {
C c = new C;
I i = c;
writeln(cast(void*)c);
writeln(cast(void*)i);
C[] cc = [c];
I[] ii = cast(I[])cc;
writeln(cast(void*)cc[0]);
writeln(cast(void*)ii[0]);
ii = to!(I[])(cc);
writeln(cast(void*)ii[0]);
}
004241
2007/11/23(金) 19:35:100043デフォルトの名無しさん
2007/11/23(金) 19:47:59渡すときにto使ったら実行時エラー消えた!!!!111
マジでありがとう!!!!
0044デフォルトの名無しさん
2007/11/23(金) 21:02:380045デフォルトの名無しさん
2007/11/23(金) 21:32:11例えば、int[]をbyte[]にキャストしたら要素数4倍になる。
void main() {
auto a = [1,2];
writeln(a.length);
writeln((cast(byte[])a).length);
}
0047デフォルトの名無しさん
2007/11/23(金) 23:48:54wxPython とか py2exe とか
色々浮気してみたら
D より Python が好きになってしまった
とりあえず D はしばらく忘れることにします
ごめんなさい
何年後かにはまた皆様にお会い出来ることを
期待してもよいのでしょうか?
0048デフォルトの名無しさん
2007/11/23(金) 23:51:54D言語が枯れたころにくるといいよ。
今は黎明期過ぎてexternを駆使しないと実戦投入は辛いだろうし。
0049デフォルトの名無しさん
2007/11/24(土) 00:17:26知らないうちに、入力補助やDdbgにも対応してるみたいです。(以前使ったのは1年以上昔)
. ドットを入力する際にメンバのリストが表示される。
メソッド名の後の ( カッコを入力する際、引数の型などが表示される。
10分ほど使って気になった点
・既存のソースはPoseidon側で保存しなおさないと、アウトライン表示と入力補助が働かない。
・デバッグでブレークポイントを設定する方法がわかりません。(´ω`);
0050デフォルトの名無しさん
2007/11/24(土) 01:34:07005149
2007/11/24(土) 01:52:480052デフォルトの名無しさん
2007/11/24(土) 02:11:13それだけできるようになったのなら
そこそこ使えるのかもしれないなーとおもた
0053デフォルトの名無しさん
2007/11/24(土) 19:09:07libファイルをimplibで変換したんですが、undefinedが出てしまうんですが。
0054デフォルトの名無しさん
2007/11/24(土) 19:12:490055デフォルトの名無しさん
2007/11/24(土) 19:19:070056デフォルトの名無しさん
2007/11/24(土) 19:47:200057デフォルトの名無しさん
2007/11/25(日) 02:22:46else char[] X = "ver1";
これがD1でコンパイルできない D_Version2 って意味あるのかな…
0058デフォルトの名無しさん
2007/11/25(日) 03:12:360059デフォルトの名無しさん
2007/11/25(日) 03:45:10……ちょっとわくわくした。
0060デフォルトの名無しさん
2007/11/25(日) 06:22:120061デフォルトの名無しさん
2007/11/25(日) 06:23:03traitsのParameterTypeTupleにthis渡したくてもどうすればいいかわからん/(^o^)\
0062デフォルトの名無しさん
2007/11/25(日) 12:51:18Class._ctorでおk
0063デフォルトの名無しさん
2007/11/25(日) 15:23:54でもthisオーバーロードしてたらどうも動きがうまくない・・・
0064デフォルトの名無しさん
2007/11/25(日) 16:34:59minx(""); でかこむ
006564
2007/11/25(日) 16:57:38mixinだって>をれ
0066デフォルトの名無しさん
2007/11/25(日) 16:58:33って思ったが、v1でq{}つかえねえんだな
0067デフォルトの名無しさん
2007/11/25(日) 17:43:08D1とD2の両方に対応できる書き方初めて見た。なるほどね。
それってinvariant()の括弧ありなしもカバーできるの?
今出先なので確認できない
0068デフォルトの名無しさん
2007/11/25(日) 18:05:39else const ClassInvariant = "invariant{_invariant();}";
class C {
private void _invariant(){ assret(false); }
mixin(ClassInvariant);
}
0069デフォルトの名無しさん
2007/11/25(日) 19:38:49二つのバージョンに対応する価値はあるのだろうか
0070デフォルトの名無しさん
2007/11/25(日) 21:32:490071デフォルトの名無しさん
2007/11/25(日) 22:23:32007257
2007/11/25(日) 22:24:03なるほど…ありがとう。参考にする。
でも、>>69の言うとおりそこまでして分けるくらいならD1対応版とD2対応版の2つを別物として作ったほうがいいような気がするな。
そうなるとやっぱりD_Version2の使いどころがわからん…
そもそもversion(D_Version2)の内容も文法的に正しくないとコンパイルが通らないあたりは問題にならないのかな。
0073デフォルトの名無しさん
2007/11/26(月) 00:10:10versionで切り替わってくれるとかでもない限り、
ほんとに使いどころは無い気がする。
D_Version2ってタダのversion識別子だよね?
0074デフォルトの名無しさん
2007/11/26(月) 01:15:46だよ。
そもそも、V2なってからもかなり変更ある気がするが、気のせいだろうな。うん
0075デフォルトの名無しさん
2007/11/26(月) 02:41:320076デフォルトの名無しさん
2007/11/26(月) 02:52:540077デフォルトの名無しさん
2007/11/26(月) 04:48:290078デフォルトの名無しさん
2007/11/26(月) 05:26:360079デフォルトの名無しさん
2007/11/26(月) 18:49:52budが気楽でいい
0080デフォルトの名無しさん
2007/11/26(月) 21:34:08(゚д゚)ポカーン
0081デフォルトの名無しさん
2007/11/26(月) 21:43:360082デフォルトの名無しさん
2007/11/26(月) 21:44:52dmd2.000だと大丈夫なのに
0083デフォルトの名無しさん
2007/11/26(月) 22:10:440084デフォルトの名無しさん
2007/11/26(月) 22:21:31ttp://dsource.org/projects/phobos
ttp://tinyurl.com/2h4tuj
なんだこれとうとう放棄したのか?w
ユーザがPhobosを開発できるなら文字コード周りを何とか・・・
0085デフォルトの名無しさん
2007/11/26(月) 22:22:530086デフォルトの名無しさん
2007/11/27(火) 00:53:140087デフォルトの名無しさん
2007/11/27(火) 00:56:570088デフォルトの名無しさん
2007/11/27(火) 01:21:29>>49
0089デフォルトの名無しさん
2007/11/27(火) 02:26:37やりたいんだがなあ
0090デフォルトの名無しさん
2007/11/27(火) 13:03:57直前の流れは知らないんだがTangoとPhobosを統合するのかな?
「両方のコーディングスタイルの違いはどうするの?」とか言ってるし
あとまだ運用がよくわからないから
「誰が全体の設計の管理を受け持つの?」とか話しているようだ
0091デフォルトの名無しさん
2007/11/27(火) 13:37:11今までのTangoの人じゃ駄目なの?
0092デフォルトの名無しさん
2007/11/27(火) 18:26:330093デフォルトの名無しさん
2007/11/27(火) 18:27:480094デフォルトの名無しさん
2007/11/27(火) 19:03:28ニートでやってくれる人いないのかな?
0095デフォルトの名無しさん
2007/11/27(火) 19:54:31よんだ?
っと冗談はおいといて、スレようにレンタルのWikiでも取る?
0096デフォルトの名無しさん
2007/11/27(火) 20:11:20情報が分散するだけだから何個もいらんよ
0097デフォルトの名無しさん
2007/11/27(火) 20:17:580098デフォルトの名無しさん
2007/11/27(火) 22:05:29acceptしたりrejectしたりする機構があればいいのか
はてなスターが積み上がる光景が見えたが
母体が2chじゃ投票制にしたら破綻するかなw
0099デフォルトの名無しさん
2007/11/27(火) 22:08:15俺はconduitの概念がしっくりこないんだよね
ようはstreamなのか?
だったらstreamでいいだろ条項とか思っちゃって
0100デフォルトの名無しさん
2007/11/27(火) 22:43:06創始者のカリスマ性によると思う
0101デフォルトの名無しさん
2007/11/28(水) 00:36:08それとCTFEでForeachRangeが使えないのを早く直して欲しい
0102デフォルトの名無しさん
2007/11/28(水) 00:38:19streamというよりstreambufのような感じなんじゃないかな。
streamはstreamで別にあるし…
0103デフォルトの名無しさん
2007/11/28(水) 13:06:35std.functional
std.algorithm
その他もろもろ
0104デフォルトの名無しさん
2007/11/28(水) 13:39:350105デフォルトの名無しさん
2007/11/28(水) 13:44:26ちょ、これから落としてくるw
2.0専用? 1系列でも使えると嬉しいんだが……。
0106デフォルトの名無しさん
2007/11/28(水) 13:45:070107デフォルトの名無しさん
2007/11/28(水) 13:46:43見たとこあんまり面白い変更無いような…。
0108デフォルトの名無しさん
2007/11/28(水) 16:37:130109デフォルトの名無しさん
2007/11/28(水) 16:57:50typeof(return)とか実際使う場面なさそうだし
0110デフォルトの名無しさん
2007/11/28(水) 18:55:22abnormal program termination
コンパイラバグってるな。@2.008
0111デフォルトの名無しさん
2007/11/28(水) 22:57:41budだと-Xあたり? が似たようなオプションになってるっぽいんだけども。
0112デフォルトの名無しさん
2007/11/29(木) 01:04:03Added const and invariant to IsExpressions
これはなんか嬉しい。
あと、
Added const/invariant structs, classes and interfaces.
これが気になっている。何に使えるんだろう?
0113デフォルトの名無しさん
2007/11/29(木) 01:07:19version(build) pragma(nolink);
でobj作らないようにして
version(build) pragma(lib, "tx.lib");
などとする
0114デフォルトの名無しさん
2007/11/29(木) 07:34:05わなDのテストやってみたら3.12MB^q^
これは・・・
0115デフォルトの名無しさん
2007/11/29(木) 09:12:21おれも気になった。
迷走って言葉が頭をよぎった
0116デフォルトの名無しさん
2007/11/29(木) 16:27:530117デフォルトの名無しさん
2007/11/29(木) 16:47:51interfaceなら使いどころもあるんじゃなかろうか。
const interface ICountable { size_t count(); }
みたいな。
0118デフォルトの名無しさん
2007/11/29(木) 17:55:180119デフォルトの名無しさん
2007/11/29(木) 18:24:38でも、Iつけてる人は多いねえ。
0120デフォルトの名無しさん
2007/11/29(木) 18:48:41作りたくなることが結構あるから、名前重ならないようにIつけてる。
0121デフォルトの名無しさん
2007/11/29(木) 19:04:360122デフォルトの名無しさん
2007/11/29(木) 19:49:31一般的になにがいいのかねぇ
0123デフォルトの名無しさん
2007/11/29(木) 20:06:510124デフォルトの名無しさん
2007/11/29(木) 20:21:160125デフォルトの名無しさん
2007/11/29(木) 23:59:55VC++だと$使えたりする。使わんけど。
0126デフォルトの名無しさん
2007/11/30(金) 02:23:22これって仕様に適ってるの?
const l = readln;
0127デフォルトの名無しさん
2007/11/30(金) 07:18:24int x = 3;
const int *p = &x;
*p = 4; // error, read-only view
const int *q = &x;
int z = *q; // z is set to 3
x = 5; // ok
int y = *q; // y is set to 5
ってなコードがある、仕様だと思う。
Cでもローカルのconst変数宣言時にコンパイル時に決定されない値入れれるし、
その辺の仕様を引き継いでるんじゃない?
0128デフォルトの名無しさん
2007/11/30(金) 16:24:13そっかー
phobos見てても本来ならfinal使うべきところでconstって書いてたりするから仕方ないのかな。
0129デフォルトの名無しさん
2007/11/30(金) 17:18:100130デフォルトの名無しさん
2007/11/30(金) 19:09:58そのうちreadonlyとかできたりして
0131デフォルトの名無しさん
2007/11/30(金) 19:16:200132デフォルトの名無しさん
2007/11/30(金) 19:39:360133デフォルトの名無しさん
2007/11/30(金) 22:49:36D2.0のconstはそれプラスreadonlyなのかな?とか漠然と思ったまま放置してた俺
D2.0になってconstがどういう意味なのかがわかりにくくない?
0134デフォルトの名無しさん
2007/11/30(金) 23:18:47おれもそう思う。>>132の解釈でいいのかな?
あとinvariant型とconst型の使い分けがよくわからん。
関数の引数にconst型を使ったとして、「俺は書き換えない」と宣言しても、その関数を実行しているときに
誰かに書き換えられちゃったら読み込んだりとかした時に予期しないエラー起こさない?マルチスレッドのときとか。
関数の戻り値は「書き換えるな」という意味でconst型でいいような気もするけど。
0135デフォルトの名無しさん
2007/11/30(金) 23:30:14ここ読んでから書き込もうよ。
0136デフォルトの名無しさん
2007/11/30(金) 23:40:220137デフォルトの名無しさん
2007/12/01(土) 00:59:27C++のconstにはコンパイル時定数とreadonlyの2つの意味があって,
C++とD1.0のコンパイル時定数としてのconstはD2.0ではinvariantが請け負って,
C++のreadonlyのconstをD2.0ではconstが請け負うってことかな
/* D2.0
コンパイル時定数 => invariant
readonly => const
*/
0139134
2007/12/01(土) 01:07:51それでなお、具体的にはconst型とinvariant型の引数の使い分けがわからん。
たとえばPhobosのstd.string.splitの引数がconst型じゃないのは何でだ?
その辺の明確な指針がほしい。
0140デフォルトの名無しさん
2007/12/01(土) 04:59:17dg();
}
void main() {
func({printf("test");});
}
//(7): Error: cannot implicitly convert expression (__dgliteral1) of type void delegate() to const void delegate()
あれ?私何か間違えたましたか><
inにconstが入るからダメっぽいんだけどinってこういう使い方じゃないの?
0141デフォルトの名無しさん
2007/12/01(土) 05:24:210142デフォルトの名無しさん
2007/12/01(土) 08:06:15semantic2で止まってるらしいけどsemantic2が何かわからね
0143デフォルトの名無しさん
2007/12/01(土) 13:41:05splitは文字列のスライスの配列を返すから、
もとの文字列が変更されてしまうと、結果がおかしくなる。
0144143
2007/12/01(土) 13:49:14import std.stdio, std.string;
void main() {
auto s = "aaa bbb ccc".dup;
auto a = split(cast(invariant)s); // 危険なキャスト
writeln(a.join("-"));
s[0..5] = "ddddd";
writeln(a.join("-"));
}
0145デフォルトの名無しさん
2007/12/01(土) 13:52:090146デフォルトの名無しさん
2007/12/01(土) 13:59:59http://www.kmonos.net/alang/d/final-const-invariant.html
>const 宣言は、以下の違いを除いて、 invariant とほぼ同じです:
>const宣言された変数を通してデータを書き換えることはできないが、 同じデータを参照する別の箇所がデータを書き換えることは あるかもしれない
>const宣言された変数の型は、const
とあるから、この文章から判断するとconstもinvariantと同様にコンパイル時決定変数なはず。
だからその式が通るならおかしいと思う。
0147デフォルトの名無しさん
2007/12/01(土) 14:07:04もしsplitの引数の型がin char[]だったら、普通に
auto a = split(s);
とできてしまう。
invariant(char)[]だからこそ、危険なキャストのような無茶をしない限り安全。
と言ったほうが分かりやすいかな。
0148デフォルトの名無しさん
2007/12/01(土) 14:10:43semantic2はsemanticが全て呼び出された後呼び出されるフェーズ。
詳しくはソース嫁
0149デフォルトの名無しさん
2007/12/01(土) 14:21:36>const宣言された変数を通してデータを書き換えることはできないが、 同じデータを参照する別の箇所がデータを書き換えることは あるかもしれない
constからはreadonlyだから書き込めない。だけど、他のconstでない参照からは書き込める。
0150デフォルトの名無しさん
2007/12/01(土) 14:36:38まとめると
invariant->コンパイル時定数,書き換え不可
const->readonly,他の参照から書き換え可能
final->初期化以降は書き換え不可,invariantやconstと違ってfinalな変数の指す値は書き換え可能
あれ、じゃあ"初期化以降は書き換え不可"かつ"指している値も書き換え不可"はどう表現するんだ?
0151デフォルトの名無しさん
2007/12/01(土) 14:40:37final constでok
0152デフォルトの名無しさん
2007/12/01(土) 14:43:34サンクス 自分のレベルの低さを痛感したorz
0153デフォルトの名無しさん
2007/12/01(土) 14:47:53こういうことかな?
import std.stdio;
void main(){
int a = 1;
int b = 2;
final const int* p = &a;
*p = 10;//a.d(8): Error: *p is not mutable
p = &b;//a.d(9): variable a.main.p cannot modify const/invariant variable 'p'
}
0154デフォルトの名無しさん
2007/12/01(土) 14:48:430155デフォルトの名無しさん
2007/12/01(土) 14:52:170156デフォルトの名無しさん
2007/12/01(土) 15:10:500157デフォルトの名無しさん
2007/12/01(土) 16:42:51多分実質はそれでもいいけど、>>146でも言ってるように仕様としてはコンパイル時未決定でもいいのか怪しいし、
finalみたいに"コンストラクタ内では何度も書き換えられる"性質を持ったものを考えてた。
ついでに初歩的なことですまんが、
final const int* p;
と
final const(int)* p;
の違いって?
0158134
2007/12/01(土) 17:12:18なるほど。確かにstd.string.splitだとinvariant型のほうがいい気がするな。
もしconst型だったら、
> 必要なのは、データを絶対に書き換えないという保証のもとにモジュールから関数にデータを読み取らせるプロトコルです。
を満たすための条件(戻り値のデータに書き換えが起こらない条件)が関数の定義からだけでは読み取れず、
ドキュメントを参照して注意しなければならない、という面倒なことが起こるからな。
じゃあ、std.string.countならどうだろう?関数の実引数にしてから関数が終了するまでの間だけ
他から書き換えられないように注意すれば引数がconst型でもいいような気がするんだけど。
これならドキュメント見なくてもconst型の使い方から終了まで書き換えちゃいけないということは判断可能だし、
戻り値がuintだから関数が終了した後まで面倒を見なくてもいい。
char[]型を実引数にするために.idupによる無駄なコピーもしなくていいし、cast(invariant)みたいな無茶なキャストも使わないですむ。
0159デフォルトの名無しさん
2007/12/01(土) 17:25:31たぶん、こうだと思うよ。
const(int*) p = &a; //p「int*」が書き換え禁止
int x = *p; //○
*p = 10; //○
p++; //×
const(int)* p = &a; //pの指し示す先の「int」が書き換え禁止
int x = *p; //○
*p = 10; //×
p++; //○
final const int* p = &a; //p「int*」書き換え禁止、かつpは初期化後は固定。(冗長?)
int x = *p; //○
*p = 10; //○
p++; //×
final const(int)* p = &a; //pの指し示す先の「int」が書き換え禁止、かつpは初期化後は固定。
int x = *p; //○
*p = 10; //×
p++; //×
0160デフォルトの名無しさん
2007/12/01(土) 17:47:53ところでいちいち.dupするの面倒なので
mutable to immutable(const/invariant) : deep copy
immutable to immutable(const/invariant) : shallow copy
となるのはどうだろう?
0161デフォルトの名無しさん
2007/12/01(土) 17:50:00const(int*) は const(const(int)*) と同じ。
const Type var; は final const(Type) var; と同じ。
ただ、2.008ではfinal記憶クラスが正しく機能していない。
0162デフォルトの名無しさん
2007/12/01(土) 18:34:50invariantメンバ関数は、コンパイル時に定数に置き換えられそうだな。
使いこなせれば強力だけど、そこまでが大変だぁ。
0163デフォルトの名無しさん
2007/12/01(土) 19:01:190164デフォルトの名無しさん
2007/12/01(土) 19:05:15なるほど。
http://www.kmonos.net/alang/d/final-const-invariant.htmlも読み直して理解できたかも。
「const(int)* p」は「(const(int))* p」って意味で、pの指す先は書き換え不可だけど、p自体はconstじゃなくて書き換え可能。
「const(int*) p」は「const(const(int)*) p」って意味で、pも書き換え不可になる訳か。
constの推移性って便利だけど、理解するまでは複雑だな。どこからconstなのか少しわかりにくい。
特に「const int* p」はどこにconstがかかるのか分かりにくいね。
0165デフォルトの名無しさん
2007/12/01(土) 19:17:22を見て気になったけど、
>invariant メンバ関数では、 this参照経由で参照される全てのデータがinvariantであることが保証されます。
struct S
{
int x;
invariant void foo()
{
x = 4; // エラー。x は invariant
this.x = 4; // エラー。x は invariant
}
}
これはつまりS.xはコンパイル時決定変数?
そうなるとSのメンバ変数はすべてコンパイル時決定って意味になるけど、それは使い道がない気がする...
0166デフォルトの名無しさん
2007/12/01(土) 19:19:43invariantでないメンバ関数を追加すればいいじゃない。
0167デフォルトの名無しさん
2007/12/01(土) 19:23:00typeof(const int*) が、typeof(const(int*)) と同じように働くのが気持ち悪い。
0168165
2007/12/01(土) 19:34:50たとえばSを
struct S{
int x;
int y;
invariant void foo(){
x = 4; //エラー、xはinvariant
}
void var(){
x = 4; //これはNG?
y = 5; //これはOK?
}
}
とした場合どうなる?
xはfooでinvariantとして扱われているから、varで書き換えたら怒らるんじゃないかと心配してるんだけど。
で、yはfooからは参照されてないからvarからは普通に書き換え可能?
テストすれば分かることを聞いてすまん。時間あったらテストするんだけど。
0169デフォルトの名無しさん
2007/12/01(土) 19:41:320170デフォルトの名無しさん
2007/12/01(土) 19:43:55invariantメンバ関数はinvariantな型に対してしか呼び出せないから、
fooを呼び出せる場合は、varは呼び出せない。
0172165
2007/12/01(土) 19:54:15"invariantな型に対してしか呼び出せない"というのはどういうこと?
invariant void foo()があることでSのメンバ変数がすべてinvariantになるという認識は間違いでしょうか。
0173デフォルトの名無しさん
2007/12/01(土) 20:02:37invariantはコンパイル時に解決できなければならないってのを意識すれば分かりやすいかな。
0174165
2007/12/01(土) 20:09:08つまり
S s1;
invariant S s2;
s1.foo(); //呼び出せない
s2.foo(); //呼び出せる
ということ?これなら納得できる。
0175デフォルトの名無しさん
2007/12/01(土) 20:15:250176165
2007/12/01(土) 20:18:42本当は今パソコンつけてる暇無い時期なんですけどね。これだけインターネットしてたら確かに同じだな;
0177デフォルトの名無しさん
2007/12/01(土) 20:33:37invariant変数はコンパイル時に決定され、ROMに配置される可能性があり、ポインタをとってはならない
invariant型の変数は実行時に決定でき、書き換えられることはないと保障される
invariantメンバ関数はコンパイル時に解決できる
const変数は実行時に決定できる
const型の変数は実行時に決定でき、書き換えてはならない
constメンバ関数は実行時に解決される
static変数はコンパイル時に決定され、実行時に変更することができ、スコープによらずデータが保持される
こうか?
0178デフォルトの名無しさん
2007/12/01(土) 21:06:23> invariantメンバ関数はコンパイル時に解決できる
これが仕様呼んでる限りだとよくわからん。
普通にモジュールスコープにある関数とか呼べるし
0179デフォルトの名無しさん
2007/12/01(土) 21:26:590180デフォルトの名無しさん
2007/12/01(土) 21:29:38invariantメンバ関数から参照できるメンバは、invariantのみ。
のほうが正しい。
0181デフォルトの名無しさん
2007/12/01(土) 21:36:46じゃないか?
0182デフォルトの名無しさん
2007/12/01(土) 21:44:55test.d(3): statement expected to be { }, not int
struct S
{ int x;
invariant int y;
}
0183デフォルトの名無しさん
2007/12/01(土) 21:46:120184182
2007/12/01(土) 22:02:290185デフォルトの名無しさん
2007/12/02(日) 01:32:520186デフォルトの名無しさん
2007/12/02(日) 02:18:43alias char[] string;で
invariant(string)ってした方がきもちよくねconst stringとか。
今char[]とstringを使い分けなきゃならんのがギモヂワルイ
0187デフォルトの名無しさん
2007/12/02(日) 03:33:33でも invariant(string) s; が invariant(char[]) s; になって
今の invariant(char)[] じゃなくなるから意味が変わっちゃうね
とはいえ他の手はこれくらいしかないんじゃなかろうか
alias char[] string;
alias const(char)[] cstring;
alias invariant(char)[] istring;
0188デフォルトの名無しさん
2007/12/02(日) 04:01:34とかをたくさんつくればいいのかな!
0189デフォルトの名無しさん
2007/12/02(日) 08:23:05いっそstring使わない方向でいこうかな・・・
0190デフォルトの名無しさん
2007/12/02(日) 10:04:36final const invariant いろいろ議論していた方々ありがとうございます
おいらも理解がふかまりました
0191デフォルトの名無しさん
2007/12/02(日) 10:29:21なるほど、メンバ関数になるとほんと複雑だな。
0192デフォルトの名無しさん
2007/12/02(日) 23:07:48>mutable/const のメンバ関数あるいはオブジェクトを経由すると invariant メンバ関数を呼び出せない
これはなんでなんだぜ?
0193デフォルトの名無しさん
2007/12/02(日) 23:36:08mutable から const や invariant を呼び出せないのはよく分からん。
そもそも変数なら const は invariant に昇格できるんじゃなかったっけか?
0194デフォルトの名無しさん
2007/12/03(月) 00:24:570195デフォルトの名無しさん
2007/12/03(月) 02:10:470196デフォルトの名無しさん
2007/12/03(月) 03:37:12コンパイル時/実行時の違いが関係ありそうなんだけど
よく分からないんだ・・・
0197デフォルトの名無しさん
2007/12/03(月) 07:44:56mutable→const : ok
あとは全部だめ
0198デフォルトの名無しさん
2007/12/03(月) 09:51:480199デフォルトの名無しさん
2007/12/03(月) 21:41:55invariantメンバ関数はinvariant型のインスタンスに対してしか呼び出せないんだから、
mutableメンバ関数の呼び出せるインスタンスに対しては絶対に呼び出せないし、
constメンバ関数の呼び出せるインスタンスは、mutable型かconst型だけで、
invariantメンバ関数が必ずしも呼び出せるとは限らない。
0200デフォルトの名無しさん
2007/12/03(月) 21:47:39mutableメンバ関数 │ ○ │ × │ ×
constメンバ関数 │ ○ │ ○ │ ○
invariantメンバ関数│ × │ × │ ○
こういうことだろ?
0201デフォルトの名無しさん
2007/12/03(月) 21:52:010202デフォルトの名無しさん
2007/12/03(月) 21:57:59class C {
const C dup() { return new C; }
}
void main(){
auto c_const = new const(C);
auto c_mutable = c_const.dup;
writeln(typeid(typeof(c_const)));
writeln(typeid(typeof(c_mutable)));
}
0203デフォルトの名無しさん
2007/12/03(月) 22:56:41class A {
const int a() { return 1; }
cosnt(int) b() { return 2; }
const const(int) c() { return 3; }
}
0204デフォルトの名無しさん
2007/12/03(月) 23:22:31const int i;と
const(int) i;ってかなり意味違う?
0205デフォルトの名無しさん
2007/12/03(月) 23:46:55C++でいう
class C {
int foo() const;
};
ってどうやるんだろうとずっと思ってた
0206デフォルトの名無しさん
2007/12/03(月) 23:50:29void main(){
invariant(int) i;
auto p = &i;
assert(is(typeof(p) == invariant(int)*));
i = 2;
writeln(*p); // 2
i = 3;
writeln(*p); // 3
}
pの指す先はinvariantのはずなのに、合法的なコードでかわってしまうという
0207デフォルトの名無しさん
2007/12/03(月) 23:53:15>>185にはそれのことが書いてあるんだわ
0208デフォルトの名無しさん
2007/12/03(月) 23:55:50http://www.kmonos.net/alang/d/final-const-invariant.html
処理系は、 実装の際にinvariant宣言の初期化子で
invariantのインスタンスを置き換えても構いません。
このため、invariant変数のアドレスを取得するのは不正となります:
invariant int i = 3;
invariant* p = &i; // error, cannot take address of invariant
とのことなので &i が不正な処理なのです
エラーにならないのならそういうバグかもしれない
0209デフォルトの名無しさん
2007/12/04(火) 00:02:08import std.stdio;
public class S
{
int mutable_num = 1;
const(int) const_num = 20;
const int const_num2 = 21;
invariant(int) invariant_num = 30;
invariant int invariant_num2 = 31;
}
void main()
{
S s = new S();
writeln("mutable_num: ", s.mutable_num);
writeln("const_num: ", s.const_num);
writeln("const_num2: ", s.const_num2);
writeln("invariant_num: ", s.invariant_num);
writeln("invariant_num2: ", s.invariant_num2);
}
-- output ---
mutable_num: 1
const_num: 20
const_num2: 21
invariant_num: 30
invariant_num2: 4296960
0210デフォルトの名無しさん
2007/12/04(火) 00:03:25それはinvariant記憶域クラスの変数の話で、
invariant型のauto変数のポインタの話には触れてないよね。
invariant int i; と invariant(int) i; は一応ちがうものだと思うんだけど。
0211デフォルトの名無しさん
2007/12/04(火) 00:11:290212デフォルトの名無しさん
2007/12/04(火) 00:13:26そう。
現在の文法では、invariant型のデータを保持するミュータブルな変数が許されてる、様な気がする。
0215デフォルトの名無しさん
2007/12/04(火) 14:22:33const(int) i;
が違うのは分かるけど。後者は使い道はないよね?
0216デフォルトの名無しさん
2007/12/04(火) 15:31:26invariantでもmutableでも受け取れる・・・みたいな
0217デフォルトの名無しさん
2007/12/04(火) 20:02:39invariant int がインスタンス変数としてアクセスするとどっかのアドレス返すのは何故だろう?
constはメモリを使い、invariantは使わないという差なら、エラーにすりゃいいのに。
0218デフォルトの名無しさん
2007/12/04(火) 20:09:51どういうこと?>>209のこれのこと?
invariant_num: 30
invariant_num2: 4296960
0219デフォルトの名無しさん
2007/12/04(火) 20:14:430220デフォルトの名無しさん
2007/12/04(火) 21:31:52俺の環境(2.008/windows)だと
mutable_num: 1
const_num: 20
const_num2: 21
invariant_num: 30
invariant_num2: 31
となったが。
0221デフォルトの名無しさん
2007/12/04(火) 21:51:590222デフォルトの名無しさん
2007/12/04(火) 22:02:36const型がコンストラクタで初期化できなくなってるし、
今は使いこなそうと思わないほうがいいのかも。
0223デフォルトの名無しさん
2007/12/04(火) 23:01:33マダァ-? (・∀・ )っ/凵⌒☆チンチン
0224デフォルトの名無しさん
2007/12/05(水) 16:31:44Learn to Tango with D
http://apress.com/book/view/9781590599600
0225デフォルトの名無しさん
2007/12/05(水) 16:43:470226デフォルトの名無しさん
2007/12/05(水) 16:44:52Amazon.co.jpによると発売日2008/1/28になってるよ。
ttp://www.amazon.co.jp/Learn-Tango-D-Kris-Bell/dp/1590599608/ref=sr_1_1?ie=UTF8&s=english-books&qid=1196840397&sr=8-1
0227デフォルトの名無しさん
2007/12/05(水) 17:15:500228デフォルトの名無しさん
2007/12/05(水) 17:17:550229デフォルトの名無しさん
2007/12/05(水) 20:43:430230デフォルトの名無しさん
2007/12/05(水) 20:59:210231デフォルトの名無しさん
2007/12/06(木) 17:41:030232デフォルトの名無しさん
2007/12/06(木) 17:49:480233デフォルトの名無しさん
2007/12/06(木) 21:46:570234デフォルトの名無しさん
2007/12/06(木) 23:22:070235デフォルトの名無しさん
2007/12/07(金) 03:28:13ってなんだこのトンチンカンな名前。
具ぐれ化す。並の名前だなぁ。初めてきいたよ。
0236デフォルトの名無しさん
2007/12/07(金) 11:42:36今日日、小学生でもこんな稚拙な文章は書かないぞw
0237デフォルトの名無しさん
2007/12/07(金) 15:41:16}
void main() {
real r;
hoge(r);
}
dmd止まる\(^o^)/
0238デフォルトの名無しさん
2007/12/07(金) 19:02:40その類のバグは既に報告されている気がする
0239デフォルトの名無しさん
2007/12/08(土) 14:07:520240デフォルトの名無しさん
2007/12/09(日) 21:35:10最初ListSeqがそれかと思ったがこれはなんかLIFOのみ高速に扱えるみたいで…
なんかC++のSTLのlistとかに比べると使い勝手悪い感じだなぁ…
0241デフォルトの名無しさん
2007/12/10(月) 09:34:19まだprivateらしいけど
0242デフォルトの名無しさん
2007/12/10(月) 13:31:240243デフォルトの名無しさん
2007/12/10(月) 21:20:380244デフォルトの名無しさん
2007/12/11(火) 12:04:30STLを置き換えられる程度には用意して欲しいもんだ
0245デフォルトの名無しさん
2007/12/11(火) 12:32:34あまりにも壮大すぎて全く完成していないのが現状。
0246デフォルトの名無しさん
2007/12/11(火) 12:44:52必要なときにdファイル落としてプロジェクトに組み込む系のやつ
0247デフォルトの名無しさん
2007/12/11(火) 13:12:01スマートポインタはGCあるからいらないとして(ほんとに?)
主要なコンテナとアルゴリズムくらいでいいや
あわよくばストリーム系まであれば万万歳
0248デフォルトの名無しさん
2007/12/11(火) 13:15:030249デフォルトの名無しさん
2007/12/11(火) 16:08:220250デフォルトの名無しさん
2007/12/11(火) 19:01:08D自体、言語を枯らそうという気が皆無だから、ライブラリなんて作れないってのもあるかも
0251デフォルトの名無しさん
2007/12/11(火) 21:01:16Phobos上でやりたいよん
0252デフォルトの名無しさん
2007/12/11(火) 21:08:340253デフォルトの名無しさん
2007/12/11(火) 22:29:53もうちょっとスマート(に拡張できる)設計をしてくれればなあ。
0254デフォルトの名無しさん
2007/12/11(火) 22:52:540255デフォルトの名無しさん
2007/12/12(水) 00:20:400256デフォルトの名無しさん
2007/12/12(水) 00:28:320257デフォルトの名無しさん
2007/12/12(水) 01:55:59なかなか10位以上にはなれないが頑張ってるよ
0258デフォルトの名無しさん
2007/12/12(水) 04:33:370259デフォルトの名無しさん
2007/12/12(水) 23:57:48ほんとだ
もっとがんばれ。超がんばれ。
0260デフォルトの名無しさん
2007/12/13(木) 00:10:510261デフォルトの名無しさん
2007/12/13(木) 00:35:15Lua上がりすぎw
0262デフォルトの名無しさん
2007/12/13(木) 00:39:29やっぱいつまで経っても正式版が出ないから敬遠する人間が多かったんだな
0263デフォルトの名無しさん
2007/12/13(木) 11:54:51メジャーの壁というか。「ここからが本当の地獄だ……!」みたいな。
0264デフォルトの名無しさん
2007/12/13(木) 12:25:170265デフォルトの名無しさん
2007/12/13(木) 12:42:360266デフォルトの名無しさん
2007/12/13(木) 16:49:10そりゃすべての言語にいえるんじゃね?
0267デフォルトの名無しさん
2007/12/13(木) 16:55:240268デフォルトの名無しさん
2007/12/13(木) 19:13:51windowsのコードページ変換のみサポートしてる感じか?
0269デフォルトの名無しさん
2007/12/13(木) 20:42:090270デフォルトの名無しさん
2007/12/13(木) 22:29:13void func(T : function)(T f) { f(); }
0271デフォルトの名無しさん
2007/12/13(木) 22:57:020272デフォルトの名無しさん
2007/12/14(金) 01:48:320273デフォルトの名無しさん
2007/12/14(金) 14:05:360274デフォルトの名無しさん
2007/12/14(金) 14:18:510275デフォルトの名無しさん
2007/12/14(金) 14:21:060276デフォルトの名無しさん
2007/12/14(金) 18:11:41ついにこう書けるんだね・・・! つーかいつできるようになったんですか><
//class HogeError : Error {
// this(string msg) {
// super(msg);
// }
//}
typedef Error HogeError;
0277デフォルトの名無しさん
2007/12/14(金) 19:50:45何か派生だとしっくりこないし、同じ実装を持つ他人になる?
0278デフォルトの名無しさん
2007/12/14(金) 21:02:38typedefもとの型には暗黙変換できる型
になるみたい。
0279デフォルトの名無しさん
2007/12/14(金) 21:32:36出来なくてもいいけど。
0280デフォルトの名無しさん
2007/12/15(土) 09:04:310281デフォルトの名無しさん
2007/12/15(土) 11:09:410282デフォルトの名無しさん
2007/12/15(土) 11:56:33外部にリリースするものとして、ファイル名だの行番号だのが入っているバイナリってどうなの?
と思っていたから別にそれでいいと思う。
でもデバッグ時にはほしい情報だよね。
0283デフォルトの名無しさん
2007/12/15(土) 12:13:31評価版だからだと思うけど
0284デフォルトの名無しさん
2007/12/15(土) 12:14:30伝説のIDEが現れれば例外発生元を突き止めてビジュアルに表示してくれるよ!
0285デフォルトの名無しさん
2007/12/15(土) 13:54:310286デフォルトの名無しさん
2007/12/15(土) 19:57:09万が一にもありえんか
0287デフォルトの名無しさん
2007/12/15(土) 21:55:09独自拡張を続け、ライブラリもMS独自のものが出来上がるだろう。
そう思うと当初のJavaと同じ問題抱えているな・・・
0288デフォルトの名無しさん
2007/12/15(土) 22:02:25それはそれでよさそうな気がしないでもない
0289デフォルトの名無しさん
2007/12/15(土) 22:10:230290デフォルトの名無しさん
2007/12/15(土) 22:13:120291デフォルトの名無しさん
2007/12/15(土) 23:15:560292デフォルトの名無しさん
2007/12/15(土) 23:23:02IDEが何やってるのか分かる限りは、むしろIDEもライブラリも「使うべき」だと思う。
とeclipseのリファクタリング機能に味を占めたヘタレの俺が言ってみる。
強い型付けとかコンパイルの早さとか、IDEがあると生きてくる言語だと思うから余計勿体ないのよね。
しかし、年の瀬も押し迫ってきたな……
去年の1.0への期待でwktkしながら年を越したっけなぁ。
来年のDは果たしてどこへ向かうことやら。
正月にはお空の火星に向かってみんなでお祈りだ。
0293デフォルトの名無しさん
2007/12/16(日) 00:40:03あれ?
0294デフォルトの名無しさん
2007/12/16(日) 00:57:250295デフォルトの名無しさん
2007/12/16(日) 19:16:590296デフォルトの名無しさん
2007/12/16(日) 19:22:03↓
ついに1.0が来るぞー!
↓
0.100リリース
↓
(゚д゚)
は2004年頃だったっけ?
0297デフォルトの名無しさん
2007/12/16(日) 19:52:330298デフォルトの名無しさん
2007/12/16(日) 23:00:240299デフォルトの名無しさん
2007/12/16(日) 23:20:22pragma(msg, Format!("%s%s", 1, 2));
%sが直に出力されちゃうんだけど、使い方間違ってる?
0300デフォルトの名無しさん
2007/12/16(日) 23:33:080301デフォルトの名無しさん
2007/12/17(月) 01:07:23semanticが呼ばれてないに一票
0302デフォルトの名無しさん
2007/12/17(月) 17:01:27ttp://erdani.org/
Andrei is working on "The D Programming Language" book, slated to hit the shelves in October 2008.
His interest in the D programming language stems from Andrei's active participation in the design of D 2.0
as a close collaborator of D's creator, Walter Bright.
あー 先週京都に来てたんだ
Andrei will present the paper "Graph-Based Learning for Phonetic Classification" co-authored
with Katrin Kirchhoff at The 2007 IEEE Automatic Speech Recognition and Understanding (ASRU)
Workshop, December 9-13, Kyoto, Japan.
0303デフォルトの名無しさん
2007/12/17(月) 22:26:370304デフォルトの名無しさん
2007/12/17(月) 22:58:32これはちょっと妙な期待をしすぎかもしれんw
0305デフォルトの名無しさん
2007/12/17(月) 23:04:28そもそも日本語訳が出るかはさておき
0306デフォルトの名無しさん
2007/12/17(月) 23:29:160307デフォルトの名無しさん
2007/12/18(火) 01:03:37本が出ることも単純に楽しみだけどこの文で一番気になったのは
D2.0をOctober 2008頃には安定させるつもりだってこと
0308デフォルトの名無しさん
2007/12/18(火) 01:09:060309デフォルトの名無しさん
2007/12/18(火) 05:52:340310デフォルトの名無しさん
2007/12/18(火) 05:53:140311デフォルトの名無しさん
2007/12/19(水) 22:08:33-inline オプションつけても全然効果無いんだけど。
0312デフォルトの名無しさん
2007/12/19(水) 22:27:270313デフォルトの名無しさん
2007/12/19(水) 22:38:200314デフォルトの名無しさん
2007/12/19(水) 23:37:29main以下全部ってわけじゃないよね
0315デフォルトの名無しさん
2007/12/19(水) 23:37:29コードでテストしたらテンプレート化したほうは確実に遅いんだよね。-inline つけてもつけなくても。
size_t at(T)(T[] a, size_t i){
if( i < a.length ) return a[i];
else throw new ArrayBoundsException(null, 0);
}
void main()
{
char[] a = new char[64 * 1024 * 1024];
auto begin = timeGetTime();
for(size_t i = 0; i < a.length; i++)
{
if( i < a.length ) a[i] = a[i];
else throw new ArrayBoundsException(null, 0);
}
Stdout.format("{}", timeGetTime() - begin).newline;
begin = timeGetTime();
for(size_t i = 0; i < a.length; i++)
{
a[i] = a.at(i);
}
auto end = timeGetTime();
Stdout.format("{}", timeGetTime() - begin).newline;
}
0316315
2007/12/19(水) 23:40:33下のテンプレート化したほうが 350ms ぐらいだった。-inline つけてもつけなくても一緒。
-inline つけたやつを逆汗したら当然展開されていなかった。
0317デフォルトの名無しさん
2007/12/19(水) 23:50:00逆アセって事は、直接アセンブラを吐けないコンパイラなの?
0318デフォルトの名無しさん
2007/12/20(木) 00:47:37もっと平易な表現でお願い。
0319デフォルトの名無しさん
2007/12/20(木) 06:44:430320デフォルトの名無しさん
2007/12/20(木) 10:02:05gdcは吐けるdmdは吐かない
0321デフォルトの名無しさん
2007/12/20(木) 22:01:20dmd-win-tangoとかdsss.confとか見たけどよくわからんかった…(´・ω・`)
0322デフォルトの名無しさん
2007/12/20(木) 22:48:22thanx
0323デフォルトの名無しさん
2007/12/20(木) 23:09:210324デフォルトの名無しさん
2007/12/21(金) 13:48:130325デフォルトの名無しさん
2007/12/22(土) 00:40:57じゃあこれで。
Tango 0.99.4 Frank has been released.
0326デフォルトの名無しさん
2007/12/22(土) 18:32:510327デフォルトの名無しさん
2007/12/22(土) 19:14:410328デフォルトの名無しさん
2007/12/23(日) 00:04:45// http://www.dprogramming.com/dfl.php
import dfl.all;
int main()
{
Form myForm;
Label myLabel;
myForm = new Form;
myForm.text = "DFL Example";
myLabel = new Label;
myLabel.font = new Font("Verdana", 14f);
myLabel.text = "Hello, DFL World!";
myLabel.location = Point(15, 15);
myLabel.autoSize = true;
myLabel.parent = myForm;
Application.run(myForm);
return 0;
}
0329デフォルトの名無しさん
2007/12/23(日) 00:43:290330デフォルトの名無しさん
2007/12/23(日) 03:17:45DWTはSWTよ
あと開発止まってるぽい
0331デフォルトの名無しさん
2007/12/23(日) 04:52:40returnで返さないっぽい
0332デフォルトの名無しさん
2007/12/23(日) 14:06:20dmd.exeだけでできたい!
0333デフォルトの名無しさん
2007/12/23(日) 14:08:070334デフォルトの名無しさん
2007/12/23(日) 22:14:130335デフォルトの名無しさん
2007/12/24(月) 21:57:560336デフォルトの名無しさん
2007/12/24(月) 22:36:16とりあえず全裸待機。
0337デフォルトの名無しさん
2007/12/24(月) 22:37:060338デフォルトの名無しさん
2007/12/24(月) 22:44:08をるたんのとこでは今何時かしらないけど
0339デフォルトの名無しさん
2007/12/25(火) 22:36:46Assertion failure: 't->deco' on line 608 in file 'mtype.c'
はいつなおるんだあああ
0340デフォルトの名無しさん
2007/12/26(水) 07:10:52あまり意味なさそうな static foreachしか覚えてないw
0341デフォルトの名無しさん
2007/12/26(水) 11:36:340342デフォルトの名無しさん
2007/12/26(水) 11:57:38macro
ADL
拡張メソッド
static引数(関数テンプレートの糖衣構文)
メンバの委任
コンパイル時に全てのcaseが網羅されているか検証するfinal switch
あたりだったか。
0343331
2007/12/26(水) 21:03:27しっかし、Tangoもどこまでやったら1.0出す気なんだろ。
まぁ確かにもっとインターフェース良くなるところは多いと思うけど。
0344デフォルトの名無しさん
2007/12/26(水) 23:55:051.0でも使えるようにするプロジェクト std2 が dsource にできてるね
0345デフォルトの名無しさん
2007/12/27(木) 00:14:250346デフォルトの名無しさん
2007/12/27(木) 20:34:530347デフォルトの名無しさん
2007/12/27(木) 21:19:39あれってC++のソースのコンパイルをmsvcではなくdmcでしなきゃいけないんだよね?
そう思ってstlportのセットアップが面倒で試してないんだが面白そう
0348デフォルトの名無しさん
2007/12/27(木) 21:27:47DMDはOMDってことになるのかな?
0349デフォルトの名無しさん
2007/12/27(木) 22:29:41いやいや、VisualStudioで作成したやつだよ。
〜.libをlink.exeにくわさないとだめだけど
0350デフォルトの名無しさん
2007/12/27(木) 22:43:51Linux ではどうなってるかしらん。
0351デフォルトの名無しさん
2007/12/28(金) 00:18:130352デフォルトの名無しさん
2007/12/28(金) 00:40:440353デフォルトの名無しさん
2007/12/28(金) 00:41:45IUnknownを継承するだけでいいの?
0354デフォルトの名無しさん
2007/12/28(金) 00:58:33?
DのinterfaceがC++のオブジェクトモデルと互換性があるということで、実際のシンボル名関係なしにVTbl手繰ってメソッド呼べるのかなぁと思ってたんだが、この場合でもあの_ZN3なんとかみたいなシンボル名からメソッドを呼び出しているの?
>>353
MS用語でいう"カスタムインターフェイス"ならIUnknown継承だけでCOMインターフェイスだったと思う。
実際にCOMコンポーネントとして使えるようにするにはいろいろ登録したり、QueryInterfaceの動作要件とかあったはず。
0355デフォルトの名無しさん
2007/12/28(金) 07:58:40extern(Windows)なinterfaceだったと思う。
0356デフォルトの名無しさん
2007/12/28(金) 11:02:18IUnknownって名前のインターフェイスを継承するだけでいいみたい。
interface IUnknown { }
interface ITest: IUnknown { }
void main(){
ITest o;
delete o; //Error: cannot delete instance of COM interface ITest
}
0357デフォルトの名無しさん
2007/12/29(土) 07:09:330358デフォルトの名無しさん
2007/12/29(土) 08:44:340359デフォルトの名無しさん
2007/12/29(土) 13:30:23> Subject: During these holiday times...
> From: Walter Bright
> Date: 2007/12/28 19:38
>
> ...we should take a moment to reflect on the important things in life.
>
> http://uk.youtube.com/watch?v=s_QpBhdvK2Q
0360デフォルトの名無しさん
2007/12/29(土) 19:47:290361デフォルトの名無しさん
2007/12/30(日) 01:03:28// cpp.cpp
#include <iostream>
#include "cpp.h"
void Cpp::func() {
std::cout << "call Cpp::func()" << std::endl;
}
Cpp* newCpp() {
return new Cpp;
}
void deleteCpp(Cpp* instance) {
delete instance;
instance = NULL;
}
これをmsvcでコンパイルして cpp.lib もしくは cpp.obj を作った
0362361
2007/12/30(日) 01:04:06extern(C++) {
interface Cpp {
void func();
}
Cpp newCpp();
void deleteCpp(Cpp instance);
}
void main() {
Cpp cpp = newCpp();
cpp.func();
deleteCpp(cpp);
}
>dmd -c main.d
>link main.obj cpp.lib
OPTLINK (R) for Win32 Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved
d_to_cpp.lib
Error 43: Not a Valid Library File
--- errorlevel 1
何がまずいですか?
0363361
2007/12/30(日) 01:06:09C++のソースはcpp.cppじゃなくてd_to_cpp.cpp
0364349
2007/12/30(日) 07:27:19implib.exe だった
C:\dm\bin\implib.exe /s $(OutDir)\$(TargetName).d.lib $(TargetPath)
こういうことをやってます。
で出力された 〜.d.lib を lib.exe でリンクね
0365デフォルトの名無しさん
2007/12/31(月) 21:25:36をるたん来年もよろしく
2008.1.1の更新きたい
0366 【小吉】
2008/01/01(火) 03:26:27アップデート期待age
0367デフォルトの名無しさん
2008/01/01(火) 09:51:38をるたんところは、夕方ごろ年明けだよね。
0368デフォルトの名無しさん
2008/01/01(火) 11:10:140369デフォルトの名無しさん
2008/01/01(火) 12:05:150370デフォルトの名無しさん
2008/01/01(火) 14:32:330371デフォルトの名無しさん
2008/01/01(火) 17:57:300372デフォルトの名無しさん
2008/01/01(火) 19:55:390373デフォルトの名無しさん
2008/01/01(火) 20:34:40裏で何か巨大なものを作ってると思って待つしかないか…
0374デフォルトの名無しさん
2008/01/01(火) 21:40:060375デフォルトの名無しさん
2008/01/01(火) 21:44:130376デフォルトの名無しさん
2008/01/02(水) 00:31:55> Redid const/invariant semantics again.
やり直し…? どう変わったのかよく分からないや。
0377デフォルトの名無しさん
2008/01/02(水) 00:57:170378デフォルトの名無しさん
2008/01/02(水) 01:01:54void f(const(int) x);
void f(int x);
のオーバーロードが出来るようになってるのは確認した。
invariant(int) i;
i = 4;
もできなくなってるから、トップレベルのconst/invarinatの扱いが変わったみたいね。
0379378
2008/01/02(水) 01:06:56invariant(T) var;
ドキュメントによれば、この二つが完全に等しくなったみたいだね。
やっと気持ちの悪いねじれが解消された感じ。ようやくだけど。
0380デフォルトの名無しさん
2008/01/02(水) 01:16:410381デフォルトの名無しさん
2008/01/02(水) 01:20:05おおほんとだ。
リンカエラーにはなるけど、コンパイラはお咎めなしなんだな
0382デフォルトの名無しさん
2008/01/02(水) 01:31:48enum string s = "hoge";
もはやenumの意味が消失してしまってる…
0383デフォルトの名無しさん
2008/01/02(水) 01:42:20class C { }
void main() {
const(C) c;
c = new const(C); // error!!!
}
0384デフォルトの名無しさん
2008/01/02(水) 02:15:44A a0;
const A a1;
a0= a1; //Error: cannot implicitly convert expression (a1) of type const(A) to A
をるたん・・・
0385デフォルトの名無しさん
2008/01/02(水) 02:40:31それは今まで出来たのがおかしい気がする。
0386デフォルトの名無しさん
2008/01/02(水) 02:49:24>>384じゃないけど、構造体の代入はビットコピーなんだからできないとおかしいだろう。
0387デフォルトの名無しさん
2008/01/02(水) 02:51:46例えば、Aがint*型のメンバを持ってたとしたら、
const(int)*からint*への暗黙の型変換が起きてしまうと思うのだけど。
0388デフォルトの名無しさん
2008/01/02(水) 03:00:16そういや、そうか。すんません。
0389デフォルトの名無しさん
2008/01/02(水) 08:53:49const(int*)にならないの??
おれがわかってないのか??
0390デフォルトの名無しさん
2008/01/02(水) 09:19:51Replace:
> const(C) c;
> c = new C(1); // error
with:
const(C) c = new C(1);
だってさ
ttp://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.announce&artnum=10964
0391デフォルトの名無しさん
2008/01/02(水) 10:01:38ん? それ>>383のだよね。
0392デフォルトの名無しさん
2008/01/02(水) 12:27:38ポインタを含む場合だけエラーってのでいいと思うんだけどなあ。
0394デフォルトの名無しさん
2008/01/02(水) 16:11:30これなおらなきゃまともに窓作れないよ・゚・(つД`)・゚・
0395デフォルトの名無しさん
2008/01/02(水) 17:28:04そんな例外はかえって必要ないだろう。
0396デフォルトの名無しさん
2008/01/02(水) 22:25:48自動で付いてるもんだと思ってたのに・・・ひどい!
0397デフォルトの名無しさん
2008/01/03(木) 03:37:47と
char[] hoge;
hoge.length = 100;
ってなんか違うことってある?
0398デフォルトの名無しさん
2008/01/03(木) 03:54:260399デフォルトの名無しさん
2008/01/03(木) 23:57:300400デフォルトの名無しさん
2008/01/04(金) 01:45:20コードplz あとそれどんなときに必要?
0401デフォルトの名無しさん
2008/01/04(金) 01:52:26void main() {
auto a = [S(0), S(1)];
auto b = [cast(const)S(0), S(1)]; // Error: no property 'opCall' for type 'const(S)'
}
const(S)[] 型の配列リテラルが欲しいんだ。
0402デフォルトの名無しさん
2008/01/04(金) 02:12:20これじゃダメ?
import std.stdio;
struct S{int i;}
void main(){
const x = [S(0), S(1)];
writefln(typeid(typeof(x))); // (const(const(main.S)[2])
}
配列リテラル周りはいつもバグに悩まされるから使わない方が
トラブルに遭わずに済んでいいかと
0403デフォルトの名無しさん
2008/01/04(金) 02:25:51const(S) b = cast(const(S))S(0);
確かに、暗黙に変換できるのに、明示的にキャストできないのは気持ち悪いな。
0404402
2008/01/04(金) 02:26:57import std.stdio;
struct S{int i;}
void main(){
const x = [S(0), S(1)];
writefln(typeid(typeof(x))); // (const(const(main.S)[2])
auto y = [S(0), S(1)];
writefln(typeid(typeof(y))); // main.S[2]
const s = S(0);
auto z = [s, S(1)];
writefln(typeid(typeof(z))); // const(main.S)[2]
}
0405デフォルトの名無しさん
2008/01/04(金) 02:33:45auto a = [delegate const(S)(){return S(1);}(), S(2)];
0406デフォルトの名無しさん
2008/01/04(金) 06:02:120407デフォルトの名無しさん
2008/01/04(金) 21:56:140408デフォルトの名無しさん
2008/01/04(金) 22:37:090409デフォルトの名無しさん
2008/01/06(日) 22:58:000410デフォルトの名無しさん
2008/01/07(月) 00:47:200411デフォルトの名無しさん
2008/01/07(月) 00:48:22それくらいの関数って作れなかったっけ?
0412デフォルトの名無しさん
2008/01/07(月) 01:23:48プロパティのための構文糖。
0413デフォルトの名無しさん
2008/01/07(月) 01:24:57答え方まで似てるってのが笑える。
0414デフォルトの名無しさん
2008/01/07(月) 01:31:14CTFEできないとダメだから自前でこしらえるしかない、って言いたかったのさ
0415デフォルトの名無しさん
2008/01/07(月) 01:36:56あーなるほど。さんくすこ
0416デフォルトの名無しさん
2008/01/07(月) 11:30:03なるほど、Ruby チックでいいね
0417デフォルトの名無しさん
2008/01/07(月) 20:19:50LL好きにはいいんだろうけど、ちょっとやだな。
getter/setter相当がオーバーロードされているときと、
getterのみはローカルキーワードで対応ってならんのかな。
0418デフォルトの名無しさん
2008/01/07(月) 21:52:020419デフォルトの名無しさん
2008/01/07(月) 22:01:440420デフォルトの名無しさん
2008/01/07(月) 22:25:16つまり関数には後ろに「( )」が必要。
0421デフォルトの名無しさん
2008/01/07(月) 22:47:17Delphiも、引数なし関数は省略できたな。
>>420
上の行としたの行がつながらん。
()があれば、必ず副作用なるわけではないでしょう?
副作用があるかどうかは、メソッド名とドキュメントで明示すべき。
0422デフォルトの名無しさん
2008/01/07(月) 22:49:44process.kill
thread.start
window.close
stream.flush
something.toString
0423デフォルトの名無しさん
2008/01/07(月) 22:55:440424デフォルトの名無しさん
2008/01/08(火) 03:06:260425デフォルトの名無しさん
2008/01/08(火) 07:19:290426デフォルトの名無しさん
2008/01/08(火) 10:57:58個人的には変数がクラス外部からはconstに見えるアクセス制御がほしい。
class Foo {
int hoge_;
int hoge() { return hoge_; }
}
とか書くのも冗長、最適化されるか分からないのが嫌、みたいな。
っつかそういう制御っていまできましたっけ?
0427デフォルトの名無しさん
2008/01/08(火) 12:32:09class Bar {}
class Foo {
int hoge_;
const int hoge() { return hoge_; }
Bar bar_;
this() { bar_ = new Bar; }
const const(Bar) bar() { return bar_; }
}
0428デフォルトの名無しさん
2008/01/08(火) 16:37:460429デフォルトの名無しさん
2008/01/08(火) 21:44:090430デフォルトの名無しさん
2008/01/08(火) 22:46:40char[][char[]] m;
m["foo"] ~= "bar";
と m["foo"] が lvalue になるんだけど、自分で作ったクラスが opIindex で配列を返すと
当然のことながら lvalue にならない。どうにか関数で配列の参照を返すことってできんだろうか?
0431デフォルトの名無しさん
2008/01/08(火) 23:08:07~= みたいな複合演算子は使えないけど。
0432デフォルトの名無しさん
2008/01/08(火) 23:42:510433デフォルトの名無しさん
2008/01/09(水) 01:07:090434デフォルトの名無しさん
2008/01/09(水) 01:15:26代入(=)じゃなくて連結(~=)したいんだ。
いちいちプロキシオブジェクト作るのは面倒だし、困ったものだ。
あと、配列とかにも演算があるんだから opCmp とか呼べりゃ良いのに・・・
ソート用に比較するときに == と < (または > ) の2回比較しなければいけないから困る。
細かいところで融通きかんよなぁ。
0435デフォルトの名無しさん
2008/01/09(水) 01:19:52Lisp屋さんか?それともPython屋さんか?
0436デフォルトの名無しさん
2008/01/09(水) 01:37:02インデクサやスライサの複合代入がオーバーロードしたいって要望はずっと前からあるが、
実現される兆しはないな。プロキシオブジェクト返すしかなさそう。
TypeInfo使えば、プリミティブ型を含めて任意の型の比較が汎用的に出来るよ。
int[] x = [1, 2, 3], y = [1, 2];
writeln(typeid(int[]).compare(&x, &y));
0437デフォルトの名無しさん
2008/01/09(水) 14:08:13お決まりの実装は自動生成してくれたり……をるたんも影響受けてくれないかなぁ。
0438デフォルトの名無しさん
2008/01/09(水) 17:02:35詳細ちぼん
0439デフォルトの名無しさん
2008/01/09(水) 19:34:02http://journal.mycom.co.jp/articles/2007/05/16/java7/index.html
あ、でもこれだと「フィールドとプロパティで名前がかぶるからフィールドに_つけなきゃ」
とかの悩みが解決できないなぁ……いや、内部からもプロパティでアクセスすりゃいいかな。
0440デフォルトの名無しさん
2008/01/09(水) 19:41:32> 内部からもプロパティでアクセスすりゃいいかな。
継承に影響が出るから、別の意図が無ければそうすべきだよ。
0441デフォルトの名無しさん
2008/01/09(水) 20:09:00http://www.dsource.org/projects/tango/wiki/LearnToTangoWithD
なんてのもできてた。
人柱レポ頼む。
0442434
2008/01/09(水) 22:58:21おおお、そんな方法があったのか。ありがとう。
というか、インスタンスが同じかどうか調べる(x is y 式と同じ)ものだと思ってたよ。
opCmp は呼べないのにどういう仕組みになってんだろ。。
0443デフォルトの名無しさん
2008/01/09(水) 23:26:05std.typeinfo以下に全部ソースあるから読んどくといいよ。
0444デフォルトの名無しさん
2008/01/10(木) 07:07:30なるほど。 ありがとう
これはいい文法砂糖
0445デフォルトの名無しさん
2008/01/12(土) 03:01:09アイ ウンコ ナウ
と読んでるでのは俺だけじゃないはず
0446デフォルトの名無しさん
2008/01/12(土) 09:48:440447デフォルトの名無しさん
2008/01/13(日) 05:07:500448デフォルトの名無しさん
2008/01/14(月) 16:06:460449デフォルトの名無しさん
2008/01/14(月) 18:04:37http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=64888
0450デフォルトの名無しさん
2008/01/14(月) 18:40:17イベントの受け取りをどうするか…
0451デフォルトの名無しさん
2008/01/14(月) 19:27:530452デフォルトの名無しさん
2008/01/14(月) 19:42:43std/c/time.d:void sleep(time_t);
std/c/time.d:void usleep(uint);
std/c/time.d:void msleep(uint);
0453デフォルトの名無しさん
2008/01/14(月) 19:51:30今更だがphobos手抜きすぎる気がしてきた
0454デフォルトの名無しさん
2008/01/14(月) 21:50:080455デフォルトの名無しさん
2008/01/14(月) 21:52:41C++の焼き直しに過ぎない。
0456デフォルトの名無しさん
2008/01/14(月) 21:55:45開発環境とライブラリが成熟しなくて、結局使い物にならないのがD。
0457デフォルトの名無しさん
2008/01/14(月) 22:00:35固めてしまった方がはるかに現実的なのに。
0458デフォルトの名無しさん
2008/01/14(月) 22:02:040459デフォルトの名無しさん
2008/01/14(月) 22:04:470460デフォルトの名無しさん
2008/01/14(月) 22:28:21それはPython
0461デフォルトの名無しさん
2008/01/14(月) 22:34:550462デフォルトの名無しさん
2008/01/14(月) 22:52:40C++のキモ過ぎに絶えられない人。
英語読めない人。
せいぜい趣味の範囲。
windowsが主でパソコン(PC)しか見えてない人。
それ以外mac, linux, unixにあんまり関心ない人。
C++に抵抗があって、java, C#以外を考えるなら、
objective-cでいいかなと思うけど、英語勉強しないとねw
Dなんて、いまだに実用(プロジェクト・個人でも)で使うのは怖くてできないし、
おぼえようにも仕様が複雑すぎ・リテラルが多すぎで、結局C++とかわんないw
ということで、C++と同じくwindows向けのオナニー言語ってことだと思った。
この辺が一向に流行らない理由じゃないかな。
ちなみに、dmcは結構好きだけど。
0463デフォルトの名無しさん
2008/01/14(月) 23:00:300464デフォルトの名無しさん
2008/01/14(月) 23:05:000465デフォルトの名無しさん
2008/01/14(月) 23:08:460466デフォルトの名無しさん
2008/01/14(月) 23:16:04でもパソコンがターゲットならvmのjavaかc#でいいよ。
次世代目指すとかデスクトップ(win, gnome)とかターゲットかと思えば、
その割には、dはguiとか標準で持ってないし、一体何をしたいんだが理解に苦しむ。
dを追いかけるよりも他の言語やunixを追いかけたほうが日本人にはいいと思った。
ハードならcや分野専用のカスタマイズ言語(cgとか)があるし。
一応、嘆き。
0467デフォルトの名無しさん
2008/01/14(月) 23:16:36日本語でおk
0468デフォルトの名無しさん
2008/01/14(月) 23:18:130469デフォルトの名無しさん
2008/01/14(月) 23:19:07おまえ馬鹿じゃね?
>>462の言ってることはめちゃくちゃ明解
0470デフォルトの名無しさん
2008/01/14(月) 23:20:05PCが主体で、携帯とかPDAとかじゃなくて、デスクトップ向けってことです。
ほぼwindowsの牙城というか。
C++にGCが標準で搭載されれば(bohem gcでも)、Dの存在価値は薄くなるかなってw
0471デフォルトの名無しさん
2008/01/14(月) 23:22:50対してC++のシェアはDの伸び以上に減ってるんだよな
言語が増えた今、C++は用途が限定されたオナニー言語になりつつあるという事だ
0472デフォルトの名無しさん
2008/01/14(月) 23:33:07俺は Boost のイカれ具合とそれを崇拝する信者どもに嫌気が指した。
0473デフォルトの名無しさん
2008/01/14(月) 23:35:060474デフォルトの名無しさん
2008/01/14(月) 23:36:16どうせC++についていけないでDに逃げてきたんだろうし。
0475デフォルトの名無しさん
2008/01/14(月) 23:37:450476デフォルトの名無しさん
2008/01/14(月) 23:38:000477デフォルトの名無しさん
2008/01/14(月) 23:43:39Boost の lambda とか言われたままに採用せずに、あんなもん言語仕様のひとつに組み込めよ、と思う。
なんでもかんでも template で generic programming って間違った進化だろ。
で、こういうこと言うとパラダイムシフトできないアホグラマがどうのとか。
スレ違いだからこのへんにするが。
0478デフォルトの名無しさん
2008/01/14(月) 23:45:230479デフォルトの名無しさん
2008/01/14(月) 23:47:58まあ今の言語の群雄割拠は地球の歴史でいうと先カンブリア紀のようなもんだからなぁ
0480デフォルトの名無しさん
2008/01/15(火) 00:04:41C++ からしたら天国じゃないか
0481デフォルトの名無しさん
2008/01/15(火) 00:23:46何でもかんでも言語仕様に取り込みゃいいってもんじゃない。
0482デフォルトの名無しさん
2008/01/15(火) 00:28:54構文や意味に誤りがあった場合にまともなエラー表示ができていない。
達成できてるとは言い難い。
0483デフォルトの名無しさん
2008/01/15(火) 00:30:20export の二の轍を踏むだけ。
0484デフォルトの名無しさん
2008/01/15(火) 00:32:130485デフォルトの名無しさん
2008/01/15(火) 00:32:45lambda の実装ごときに何の問題があると。
0486デフォルトの名無しさん
2008/01/15(火) 00:34:34forumに書き込んでる暇があれば自分で移植しろという感じだな
0487デフォルトの名無しさん
2008/01/15(火) 00:35:32けっきょくは、better c++ なんでしょうか。
また1年後ぐらいにこのスレにきますわw
0488デフォルトの名無しさん
2008/01/15(火) 00:36:50D見るとつくづくそう思うよ。
バグは言語仕様に対して指数関数的に増えるからな
const周りの仕様変更でfinalメンバ関数の挙動がおかしくなったりとか
そういうのにぶつかると絶望感感じるよ。
0489デフォルトの名無しさん
2008/01/15(火) 00:38:38言語は実装されて初めて意味を持つんだから、普及させたけりゃ仕様は少ない方がいい。
さらに、覚える方も楽だしね。
さらに、D の設計思想にある 「構文解析と意味解析を分離する」 が達成されていない C++ で
新たに仕様を増やしたときの実装コストはいかほどのものかちったぁ考えようぜ。
boost をそのまま取り込むとなれば実装コストは名前ちょっといじる程度。
この差は非常に大きい。
0490デフォルトの名無しさん
2008/01/15(火) 00:41:29仕様に組み込みたい気持ちは分かりますが、Cの言語仕様にラムダはいかんでしょ。
あなた、プログラム言語のことをちゃんと学んでないようですね。
パラダイムとかテンプレートもいいたいこと分かるんですけど、世の中にはもっとキモイのがいるんで、
そういうの見ると少しはC++のそれも理解できるかとw
正規表現で不定方程式を解く
0491デフォルトの名無しさん
2008/01/15(火) 00:45:32現実があれじゃどうかと思うぜ。あんなのIOCCCに応募するようなコードだろ。
マクロでマイ言語作って叩かれた25年前から何も変わってない。
0492デフォルトの名無しさん
2008/01/15(火) 01:16:36おこちゃまはwinでrubyでいいからw
0493デフォルトの名無しさん
2008/01/15(火) 01:17:26スルーしとけ
0494デフォルトの名無しさん
2008/01/15(火) 01:17:430495デフォルトの名無しさん
2008/01/15(火) 01:19:57ラムダは制御には向いてませんよ。Cは制御に向いてますよ。
あなたに必要なのは、そういうところだと思います。
0496デフォルトの名無しさん
2008/01/15(火) 01:20:02仕事で使ってる俺から言わせてもらうと
実用とか稼働とかとはほど遠いから趣味で使うのがいいよ
あと1年後じゃ無理だから5年後においでw
0497デフォルトの名無しさん
2008/01/15(火) 01:22:07誤れ!アンドレイ・アンドレスクに誤れ!
0498デフォルトの名無しさん
2008/01/15(火) 01:31:45そろそろDにもラムダ記法導入して欲しいよね。
0499デフォルトの名無しさん
2008/01/15(火) 02:23:07誤ってるのはお前の書いた名前だw
0500デフォルトの名無しさん
2008/01/15(火) 06:06:190501デフォルトの名無しさん
2008/01/15(火) 06:38:16あーもーつまんね
0502デフォルトの名無しさん
2008/01/15(火) 07:27:12実の無い話があっただけ?
0503デフォルトの名無しさん
2008/01/15(火) 07:40:38という毎度の傾向がまた一つ見られただけです。
0504デフォルトの名無しさん
2008/01/15(火) 08:34:100505デフォルトの名無しさん
2008/01/15(火) 18:09:03これでもみておちつこうぜ
0506デフォルトの名無しさん
2008/01/15(火) 21:25:550507デフォルトの名無しさん
2008/01/15(火) 21:32:53http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&calc=Calculate&xfullcpu=1&xloc=1
コードが冗長過ぎだもんね
0508デフォルトの名無しさん
2008/01/15(火) 21:40:55生温い
ttp://tinyurl.com/39ap2z
0509デフォルトの名無しさん
2008/01/15(火) 22:34:470510デフォルトの名無しさん
2008/01/15(火) 22:48:14このDLLの関数をmainから直に呼べば問題なく動くのに、
オブジェクト指向なラッパとして、クラスを作ってメンバ関数から呼ぶと起動すらできずに実行時エラー
「アプリケーションを正しく初期化できませんでした (0xc0000005)。」が出る。
このクラスをプログラム内で一回も使っていなくても、定義しただけで起動できなくなる。
こんな奇妙な現象に悩まされているのですが、一体どんな原因が考えられますか。
0511デフォルトの名無しさん
2008/01/15(火) 23:22:58再現コード+DLLを、どっかにアップしたらどう
0512デフォルトの名無しさん
2008/01/16(水) 00:28:08すみません。原因はわかってしまいました。
クラス定義があると、どうやらモジュールコンストラクタで使っているDLLよりも、
クラスのメンバ関数で使っているDLLが先にロードされて、
そのロード順の違いによって問題が出たり出なかったりするようです。
COM周りは本当によく分かりません。
0513デフォルトの名無しさん
2008/01/16(水) 12:41:58Winsockで簡易的なHTTPサーバーを作ろうと思い、
ためしにCで書かれたサンプルをDにしてみているのですが、
sockaddr_in型からsockaddr型への変換のところで詰まりました。
サンプルは
http://www.geekpage.jp/programming/winsock/http-server.php
のものです。
どうすればsockaddr_in型からsockaddr型への変換ができるのでしょうか。
Cでは (struct sockaddr *)&addrで変換しているようです。
0514デフォルトの名無しさん
2008/01/16(水) 13:14:180515デフォルトの名無しさん
2008/01/16(水) 13:20:32ああ、それっぽいことをしていたのに真っ先に試すべきそれをやってませんでした。。。
どうもです。
0516デフォルトの名無しさん
2008/01/18(金) 06:32:42管理してるんだろうなぁ
いつも更新同時にでるし。
#ifdefでわけてるだけなのかな
0517デフォルトの名無しさん
2008/01/18(金) 08:26:55ソース嫁
といいつつ見てみたけど #if V2 で分けてるだけに見えるな
0518デフォルトの名無しさん
2008/01/18(金) 11:29:14たまに誰かのがマージされてるみたいだけど
0519デフォルトの名無しさん
2008/01/18(金) 11:47:520520デフォルトの名無しさん
2008/01/18(金) 19:08:18>>519
まじっすかwwwなぜdsourceにいったんだろうw
0521デフォルトの名無しさん
2008/01/19(土) 00:06:30コンストラクタで一度だけ初期化できるフィールドってどうやって書けばいいんだ
0522デフォルトの名無しさん
2008/01/19(土) 00:10:210523デフォルトの名無しさん
2008/01/19(土) 00:11:320524デフォルトの名無しさん
2008/01/19(土) 03:21:59使いやすくなると思うんだけどな
0525デフォルトの名無しさん
2008/01/19(土) 04:26:52最低でもconst/invariant関連の仕様がいい具合になるまでは
D1.0+Tangoで当面様子見するのがいいかも。
0526デフォルトの名無しさん
2008/01/19(土) 07:18:040527デフォルトの名無しさん
2008/01/19(土) 09:28:060528デフォルトの名無しさん
2008/01/19(土) 09:54:350529デフォルトの名無しさん
2008/01/19(土) 11:52:33誰かD--言語のドラフト書いてくれよ
0530デフォルトの名無しさん
2008/01/19(土) 13:42:25同意。せめてin char[]にして欲しい。
おかげで無駄なキャストがわらわらと必要に
0531デフォルトの名無しさん
2008/01/19(土) 16:24:10D:\foo\abc\def.txtというパスを取得する簡単な方法はありませんか?
0532デフォルトの名無しさん
2008/01/19(土) 22:16:300533デフォルトの名無しさん
2008/01/19(土) 23:07:01とかがあるんじゃね?
とか打ってみたらリズムが良くてわらた
0534デフォルトの名無しさん
2008/01/19(土) 23:15:00string[] path = [];
foreach(dir; orig_path.split("\\")) {
if(dir == ".")
continue;
if(dir == ".." && path.length > 1) {
path.length = path.length-1;
continue;
}
path ~= dir;
}
return path.join("\\");
}
こんな感じでどうだろ
0535デフォルトの名無しさん
2008/01/19(土) 23:22:00auto a = path.split(`\`), b = new string[a.length], idx = 0;
foreach(e; a) {
switch(e) {
case ".":
break;
case "..":
if(--idx < 0) throw new Exception("invalid");
break;
default:
b[idx++] = e;
}
}
return b[0 .. idx].join(`\`);
}
0536デフォルトの名無しさん
2008/01/19(土) 23:25:430537デフォルトの名無しさん
2008/01/19(土) 23:57:02if(dir == ".." && path.length > 1) {
↓
if(dir == ".." && path.length > 0 && path[$-1] != "..") {
でした。
0538デフォルトの名無しさん
2008/01/20(日) 13:03:37どうもです。
パスの正当性チェックを加えて使います。
0539デフォルトの名無しさん
2008/01/20(日) 14:37:06ま、WindowsならそのものずばりなAPIがあったりするが。
0540デフォルトの名無しさん
2008/01/20(日) 15:01:16似たような処理で、linuxやwebの不正なパスも調べようとしているので。
もしできれば参考までにその関数名を教えてくれると助かります。
0541デフォルトの名無しさん
2008/01/20(日) 17:16:46PathCanonicalize()
あ、不正かどうかのチェックではなく、相対指定の削除の方な。
0542デフォルトの名無しさん
2008/01/20(日) 20:56:30dout.printf("%d\n".dup, 10);
.dupうぜええ
0543デフォルトの名無しさん
2008/01/20(日) 22:16:25でじこ・うさだ・ぷちこ
0544デフォルトの名無しさん
2008/01/21(月) 06:41:000545デフォルトの名無しさん
2008/01/21(月) 10:03:310546デフォルトの名無しさん
2008/01/21(月) 11:28:13何に使うんだろう
0547デフォルトの名無しさん
2008/01/21(月) 11:33:350548デフォルトの名無しさん
2008/01/21(月) 11:56:36Jan 20, 2008
New/Changed Features
opAssign can no longer be overloaded for class objects.
WinMain and DllMain can now be in template mixins.
Added pure keyword.
0549デフォルトの名無しさん
2008/01/21(月) 17:30:100550デフォルトの名無しさん
2008/01/22(火) 01:38:01Func func;
alias void function() Func;
というふうになっていると、そこでエラーになる。
rpcndr.dとか、rpcdcep.dとか。
だから、それを解消するように書き換えてやれば、使えるようになる。
alias void function() Func;
Func func;
というように。
まあ、ちょっと調べれば分かることだけど、とりあえず報告。
0551デフォルトの名無しさん
2008/01/22(火) 01:43:32* Bugzilla 1319: compiler crashes with functions that take const ref arguments
* Bugzilla 1697: Internal error: ..\ztc\cgcod.c 2322 with -O
* Bugzilla 1700: ICE attempting to modify member of const return struct
* Bugzilla 1707: '==' in TemplateParameterList in IsExpression causes segfault
* Bugzilla 1711: typeof with delegate literal not allowed as template parameter
* Bugzilla 1713: foreach index with tuples and templates fails
* Bugzilla 1718: obscure exit with error code 5
* Bugzilla 1719: Compiler crash or unstable code generation with scoped interface instances
* Bugzilla 1720: std.math.NotImplemented missing a space in message
* Bugzilla 1724: Internal error: toir.c 177
* Bugzilla 1725: std.stream.BufferedFile.create should use FileMode.OutNew
* Bugzilla 1757: there is an fault in phobos windows api interface
* Bugzilla 1762: Wrong name mangling for pointer args of free extern (C++) functions
* Bugzilla 1767: rejects-valid, diagnostic
* Bugzilla 1769: Typo on the page about exceptions
* Bugzilla 1773: excessively long integer literal
* Bugzilla 1779: Compiler crash when deducing more than 2 type args
* Bugzilla 1783: DMD 1.025 asserts on code with struct, template, and alias
* Bugzilla 1788: dmd segfaults without info
* D.announce/11066: Re: DMD 1.025 and 2.009 releases
0552デフォルトの名無しさん
2008/01/22(火) 01:44:06やっと最初のやつ直ったのな
0553デフォルトの名無しさん
2008/01/22(火) 12:44:34ttp://www.itmedia.co.jp/enterprise/articles/0801/22/news058.html
これでD言語にも人気が出てくるといいな。
0554デフォルトの名無しさん
2008/01/22(火) 17:34:28へー、WindowsAPIってOSの機能を使うだけって思ってたんですがこういう関数も結構あるんですね。
ありがとです。
0555デフォルトの名無しさん
2008/01/22(火) 18:26:520556デフォルトの名無しさん
2008/01/22(火) 18:37:44>GDCはDMDとは違って今のところはまだ標準に100%の準拠はしていない。
標準?そんなものあったの?
0557デフォルトの名無しさん
2008/01/22(火) 18:50:09ウォルたんのページに書いてるのが標準。ただし、頻繁に変わるw
0558デフォルトの名無しさん
2008/01/22(火) 18:56:03delegateは実はただの構造体のようなもの。
TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) {
typeof(return) dg;
dg.ptr = null;
dg.funcptr = fn;
return dg;
}
0559デフォルトの名無しさん
2008/01/22(火) 19:07:24それスタックずれる
0560デフォルトの名無しさん
2008/01/22(火) 19:13:03TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) {
return delegate TR(TA args){ return fn(args); };
}
0561デフォルトの名無しさん
2008/01/22(火) 21:49:56{
R call(A args)
{
return (cast(R function (A))this)(args);
}
}
R delegate (A) todg(R, A...)(R function (A) func)
{
FunctionCaller!(R, A) c = void;
auto res = &c.call;
res.ptr = cast(void*)func;
return res;
}
0562デフォルトの名無しさん
2008/01/23(水) 06:33:07なんでそんなに詳しいんだ
0563デフォルトの名無しさん
2008/01/23(水) 12:23:38そのアップデート速度がDの魅力。
仕様が10年も変わっていないC++には真似ができない。
ただ、最近はDMDの更新が遅いと思い始めた。病気だろうか。
0564デフォルトの名無しさん
2008/01/23(水) 13:49:37超わかりすぎるw
0565デフォルトの名無しさん
2008/01/23(水) 14:07:560566デフォルトの名無しさん
2008/01/23(水) 15:29:41よう俺
0567デフォルトの名無しさん
2008/01/23(水) 16:56:030568デフォルトの名無しさん
2008/01/23(水) 21:17:05その手直しされたファイル群をうpしてくれ
0569デフォルトの名無しさん
2008/01/23(水) 22:08:47if (s[$ - 1] == '\n' && s[$ - 2] == '\r')
文末にCRLFがあるか調べるだけの条件式ですが、
これらは似たようなものなのに、後者の方が6倍ほど速くなるのは何ででしょうか?
0570デフォルトの名無しさん
2008/01/23(水) 22:23:29文字列の比較か整数の比較か。
0571デフォルトの名無しさん
2008/01/23(水) 23:27:42一番大きいのは配列比較関数を呼び出すオーバーヘッドじゃなかろうか。
0572デフォルトの名無しさん
2008/01/24(木) 01:14:43いろんな理由があるんですね。
でも、どっちにせよ10000000回まわしてやっと差が二秒出る程度なのであまり気にしないことにします。
0573デフォルトの名無しさん
2008/01/25(金) 10:40:330574573
2008/01/25(金) 10:49:57DでつくったCOMをC#からつかってみようと思ったんだけど、
登録できなくて、いろいろしらべたら、タイプライブラリが組み込んでないからだと
思うようになったんです。
以下C++でDのサンプルにあるdserver.dを呼び出す方法です
GUID CLSID_Hello = { 0x30421140, 0, 0, {0xC0,0,0,0,0,0,0,0x46} };
GUID IID_IHello = { 0x00421140, 0, 0, {0xC0,0,0,0,0,0,0,0x46} };
HRESULT hr;
class IHello : IUnknown {
public:
virtual int STDMETHODCALLTYPE Print()= 0;
};
IHello* pIHello;
hr=CoCreateInstance( CLSID_Hello, NULL, CLSCTX_ALL, IID_IHello, (void**)&pIHello);
pIHello->Print();
0575デフォルトの名無しさん
2008/01/25(金) 14:31:290576デフォルトの名無しさん
2008/01/25(金) 16:28:14↓ここには、バイナリはi686用しか用意してないって書いてますが...
http://www.dsource.org/projects/tango/wiki/GdcDownloads
ソースから自力コンパイルするといいのかしらん。
0577573
2008/01/25(金) 16:46:13VisualStudioで適当なActiveXプロジェクトをつくって
そこでできたresファイルをDMDにくわせたら・・・
うをを、登録できた!
これで575さんの言うとおりの事をやればいける予感です
ありがとうございます!
0578デフォルトの名無しさん
2008/01/25(金) 19:00:570579デフォルトの名無しさん
2008/01/25(金) 19:14:37CTFE出来る関数は純粋関数。
0580デフォルトの名無しさん
2008/01/25(金) 23:55:01ところでpureキーワードの説明、どこに載ってる?
0581デフォルトの名無しさん
2008/01/26(土) 00:02:56news://news.digitalmars.com:119/[email protected]
> > Thanks! Are there any short-term plans to do anything with 'pure',
> > or are you just reserving the keyword (as was done for 'macro')?
>
> It's just to reserve it.
0582デフォルトの名無しさん
2008/01/26(土) 08:24:35使えたら設定の仕方教えてください。
0583デフォルトの名無しさん
2008/01/26(土) 13:36:06対象スレ: D言語 Part16
キーワード: の?
抽出レス数:26
0584デフォルトの名無しさん
2008/01/26(土) 13:39:12ちょっとはぐぐればいいのに
0585デフォルトの名無しさん
2008/01/26(土) 13:44:20と丁寧に頼む割りに
使えるの?
というたずね方。
つまり
教えてください。
は形だけ丁寧にしたってことだね><
0586デフォルトの名無しさん
2008/01/26(土) 13:48:30細かいぞ、と初レス
0587デフォルトの名無しさん
2008/01/26(土) 14:12:01ど、どうしたのかなぁ・・・
0588デフォルトの名無しさん
2008/01/26(土) 14:30:55http://www.kmonos.net/alang/d/1.0/
http://www.kmonos.net/alang/d/2.0/
0589デフォルトの名無しさん
2008/01/26(土) 14:36:51いやいや、更新中だったと思われ
/2.0フォルダが無かった
乙です。お世話になってます。>inaba氏
0590デフォルトの名無しさん
2008/01/27(日) 15:33:08string回りでエラー出すとinvariant(char)[]がうじゃうじゃ見えるのが鬱陶しいー。
文字列=>文字列の連想配列とか使うともうわけわからん。
stringがクラスになる日はもう来ないのかなぁ……
ところでDで設定ファイルを扱うとなると、何が定番だろう。
0591デフォルトの名無しさん
2008/01/27(日) 15:40:040592デフォルトの名無しさん
2008/01/27(日) 17:41:01withだのsyncronizedだのscopeだの型推論だのプロパティだのとD節全開な自分のコードがそこに広がっていた。
(C++やJavaさえ知っていれば)習得が容易というのはDの売り文句なはずだけど、
誰かヲルタたんを止めないと…この調子でいったら……とおもった。
まぁ個人的にはバッチコイだけど。
0593デフォルトの名無しさん
2008/01/27(日) 17:49:42scope属性はC++のauto属性、scope文は他の言語では見たこと無いなぁ。
0594デフォルトの名無しさん
2008/01/27(日) 18:13:150595593
2008/01/27(日) 18:30:470596デフォルトの名無しさん
2008/01/27(日) 19:06:04全然関係ないけど、うちの同僚が「久々にムッチリコード書いたぜ」ってメールだしてきたのを思い出してワラタ
0597デフォルトの名無しさん
2008/01/27(日) 21:27:15boostにスコープガードなかったっけ。
0598デフォルトの名無しさん
2008/01/27(日) 23:19:110599デフォルトの名無しさん
2008/01/27(日) 23:28:13WinMain
DllMain
の3つじゃなかったかな
0600デフォルトの名無しさん
2008/01/29(火) 08:40:53http://www.digitalmars.com/d/2.0/features2.html
0601デフォルトの名無しさん
2008/01/29(火) 17:32:47New/Changed Features
* Re-enabled auto interfaces.
Bugs Fixed
* Bugzilla 1072: CTFE: crash on for loop with blank increment
更新内容が最近寂しいのは、そろそろ3.0ですよってことなのだろうか
0602デフォルトの名無しさん
2008/01/29(火) 17:46:00>そろそろ3.0ですよってことなのだろうか
だめだはやくウォルタンを止めないと・・・
0603デフォルトの名無しさん
2008/01/29(火) 18:30:360604デフォルトの名無しさん
2008/01/29(火) 18:54:580605デフォルトの名無しさん
2008/01/29(火) 19:54:590606デフォルトの名無しさん
2008/01/29(火) 20:00:450607デフォルトの名無しさん
2008/01/29(火) 20:58:43どうして推奨の命名規則を守らないのか
訊いてみたいが言葉の壁ががが
0608デフォルトの名無しさん
2008/01/29(火) 21:05:010609デフォルトの名無しさん
2008/01/30(水) 00:00:090610デフォルトの名無しさん
2008/01/30(水) 00:08:47C++のシフト演算子よりも寒気のする記法があるとはおもわなんだ。
0611デフォルトの名無しさん
2008/01/30(水) 02:05:01>C++のシフト演算子よりも
そんなまさか
0612デフォルトの名無しさん
2008/01/30(水) 02:32:17そうなんだあ・・・勉強してみようかな
0613デフォルトの名無しさん
2008/01/30(水) 02:35:200614デフォルトの名無しさん
2008/01/30(水) 03:38:330615デフォルトの名無しさん
2008/01/30(水) 07:10:430616デフォルトの名無しさん
2008/01/30(水) 13:21:17「標準出力に"foo"、barを書き込む」って言わせてほしいのに、
「barを"foo"を標準出力したものする」と言わされるという不思議。
あ、なんか書いてて「標準出力って動詞じゃね? ”標準出力する”て自然じゃん」て思えてきた……。
「"foo"を標準出力先する」 うん、これならちゃんと不自然だ。
んあ? API Index見たら、tango.group以下のだけちゃんと小文字だな。
tango.group.collectionならtango.util.collection以下を全部public importするのか。ほほー。
0617デフォルトの名無しさん
2008/01/30(水) 13:45:39auto o = Stdout(1);
o = o(2);
o = o.newline();
o = o(3);
o.newline();
0618デフォルトの名無しさん
2008/01/30(水) 13:47:590619デフォルトの名無しさん
2008/01/30(水) 14:39:470620619
2008/01/30(水) 14:52:340621デフォルトの名無しさん
2008/01/30(水) 19:48:190622デフォルトの名無しさん
2008/01/30(水) 19:49:550623デフォルトの名無しさん
2008/01/31(木) 17:09:330624デフォルトの名無しさん
2008/01/31(木) 17:18:110625デフォルトの名無しさん
2008/01/31(木) 17:21:11それか気づいてても直すの面倒なだけか。
0626デフォルトの名無しさん
2008/01/31(木) 17:44:50Winだけで動けばいいから、あまりごてごてしてなくて、
普通にWinAPIのオブジェクト指向ラッパみたいなのでも構わないんだが。
0627デフォルトの名無しさん
2008/01/31(木) 20:53:43豊富な日本語ドキュメントもほすぃ
0628626
2008/01/31(木) 22:05:19激しく車輪の再発明なわけだが、勉強にはなりそうだし…
時代はWPFに遷りかけてるのに一体何をやってるんだか。
0629デフォルトの名無しさん
2008/01/31(木) 22:16:13完成したころにD3.0が…
0630デフォルトの名無しさん
2008/01/31(木) 22:57:26SetWindowsHookExとDFLのフォームを使いたかったんだけどなぁ。
ちなみにWinAPIってのは
http://www.dsource.org/projects/bindings/wiki/WindowsApi
を利用した方ね。tango内のWin32ではなくて。
...あ、static importすればいいのか。
0631630
2008/01/31(木) 22:59:50そうじゃなくて「選択 import」ね。
でもstatic importも選択importも使ったこと無いなぁ。
0632デフォルトの名無しさん
2008/02/01(金) 01:25:04GUIライブラリを使わないでwin32apiだけを使ったウインドウをただ表示するだけのサンプルコードはどこかにありませんか?
0633デフォルトの名無しさん
2008/02/01(金) 11:14:51わなDのが近い。書庫の展開とかやってるけど、main関数はまんま。
つか、その条件ならDじゃなくて、C/C++のサンプルコード探したほうがいいんじゃね?
0634デフォルトの名無しさん
2008/02/01(金) 15:28:53http://www.kmonos.net/alang/wnd/topics/winapi.ja.html
0635デフォルトの名無しさん
2008/02/01(金) 17:39:16そこからWin32のバインディングをダウンロードしたいのですが
やりかたがわかりません・・・
TortoiseSVNでやってみてるのですが・・・
0636デフォルトの名無しさん
2008/02/01(金) 18:22:12ダウンロードは
http://www.dsource.org/projects/bindings/browser/trunk
の一番下のDownload in other formats: Zip Archiveから出来る。
trunk以下すべてが入ってるけどそこからWin32だけ抜き出せばOK
trunk/win32をブラウザで開いてもZip Archiveのリンク無くて迷った。
0637636
2008/02/01(金) 18:30:15それと今exeファイルのアイコンを変える方法探してるんだけど。。。無理?だよねぇ。
外部ツール使って書き換えでもいいけど、コマンドラインから使えるタイプのものってないだろうか。
0638デフォルトの名無しさん
2008/02/01(金) 18:40:14ををっそんな小さなところに!
ありがとうございます
これすごいですね、DirectX10まである
0639デフォルトの名無しさん
2008/02/01(金) 18:40:34ttp://www5.atwiki.jp/yaruhara/pages/74.html#id_7e0a1665
これ? でいいんかな。試してないんでよく知らんが。
0640デフォルトの名無しさん
2008/02/01(金) 18:51:330641デフォルトの名無しさん
2008/02/01(金) 19:00:340642636
2008/02/01(金) 19:02:03サンクス!これで出来た。dsssはresの扱い方知らないとか言ってきたけどw
0643636
2008/02/01(金) 19:17:50なるほどアドレスが違ったのか。そのままwww.dsource.org/でコマンド打ってたらそりゃ無理だ罠。
0644636
2008/02/01(金) 19:34:46dsss build main.d -L/RC:test.res
0645デフォルトの名無しさん
2008/02/01(金) 19:36:41{{は.diになったときのエラーよけ
ubyte[] serialize(T)(in T t)
{
ubyte[] rv;
static if( is(T==struct) ) {{
foreach(x;t.tupleof)
rv~=serialize(x);
}} else
static if( __traits(isIntegral,T) ) {{
rv=(cast(ubyte*)[t].ptr)[0..T.sizeof];
}} else
static if(__traits(isStaticArray,T)) {{
rv=cast(ubyte[])t;
}} else
static if(is(T U:U[][])) {{
rv=serialize(t.length);
foreach( v; t) {
rv~= serialize(v);
}
}} else
static if(is(T U:U[])) {{
rv=serialize(t.length) ~ cast(ubyte[])t;
}} else {{
assert(0,"unsupported");
}}
return rv;
}
0646デフォルトの名無しさん
2008/02/01(金) 19:37:10{
static if(__traits(isStaticArray,T) && is(T U:U[])) {
alias U[] ReturnType;
} else {
alias T ReturnType;
}
}
ReturnType!(T) deserialize(T)(ubyte[] t)
{
ubyte* ptr = t.ptr;
return _deserialize!(T)(ptr);
}
0647デフォルトの名無しさん
2008/02/01(金) 19:37:54ReturnType!(T) rv;
static if(is(T==struct)) {{
foreach(i,x;rv.tupleof) {
static if(__traits(isStaticArray,typeof(x)))
rv.tupleof[i][]/*x[]=*/=_deserialize!(typeof(x))(t)[];
else
rv.tupleof[i]/*x=*/=_deserialize!(typeof(x))(t);
}
}} else static if(__traits(isIntegral,T)){{
rv=*cast(T*)t;
t+=T.sizeof;
}} else static if(__traits(isStaticArray,T)&&is(T U:U[])){{
rv=cast(U[])t[0..T.sizeof];
t+=T.sizeof;
}} else static if(is(T U:U[][])){{
int len = _deserialize!(size_t)(t);
rv.length= len;
foreach( i; 0..len) {
rv[i]= _deserialize!(U[])( t);
}
}} else static if(is(T U:U[])){{
int len = _deserialize!(size_t)(t);
rv= (cast(U*)t)[0..len];
t+=len*U.sizeof;
}} else {{
assert(0,"unsupported");
}}
return rv;
}
だれか連想配列たのむ
0648デフォルトの名無しさん
2008/02/01(金) 20:04:16単に長さを最初に入れて、キーと値を交互にserializeして詰めていけばおkじゃね?
0649デフォルトの名無しさん
2008/02/01(金) 22:04:220650デフォルトの名無しさん
2008/02/01(金) 22:36:59どうもです。
そこの気合いの入った例のコードをとりあえずコンパイルしてみました。
何度かエラーが出たりしましたが何とかコンパイルできました。
出たエラーは
tchar.dのtc.TtoW().toUTF8()の部分。
no property 'toUTF8' for type 'int'といわれてしまった。
これはほかのサンプルソースを拾ってきて学習しているときにも、同様の形式でよく出た。
javascriptでこういう書き方を良くやったけど、出来ないのかな?
toUTF8(TtoW(tc))にしたらコンパイルは通った。
後はインポートするファイルがどれかわからなかったのと、
リンクするファイルもどれかわからなかった。
で、コンパイルのコマンドラインはtcharを同じディレクトリにおいて
dmd test tchar shell32.lib win32.lib main.def -version=Unicode
で
import win32.core;
import win32.shellapi; // DragQueryFile 等
import tchar;
import std.windows.charset;
をインポートしたら通った。
tchar.dの方は
module tchar;
import win32.windef;
import std.utf;
import std.string;
private import win32.winbase;
で通った。
0651デフォルトの名無しさん
2008/02/02(土) 00:52:04Derelict落としてchar[]をstringに置換したりしつつdmdに突っ込んでみたら
例のAssertion: t->decoで泣ける。
>>550を見つけて神かと思ったものの、
問題の箇所を見つけるのはなかなか大変そうだ……早く直してくれぇ。
あと.di食わせたら"Error: unrecognized file extension di"とか言われてしまった。
まさか仕様じゃないよな……?
0652デフォルトの名無しさん
2008/02/02(土) 01:51:11.diはimportに使うだけで、コンパイラに与えるものじゃないよ。
0653デフォルトの名無しさん
2008/02/02(土) 08:26:57もうちょっとだけがんばってみた
http://www.kmonos.net/alang/dee/diki7/serializer
0654デフォルトの名無しさん
2008/02/02(土) 12:20:30ReturnTypeのinvariant外しが気になるなぁ。
ReturnTypeはinvariantを外さないようにして、invariantを外すMutableReturnTypeを作って、rvの型をMutableReturnType!(T)にして、returnをcast(ReturnType!(T))rvにすると良いと思うよ。
0655デフォルトの名無しさん
2008/02/02(土) 12:25:05それをやったらかなり使えそうだね。。って
車輪の開発じゃね?どっかに絶対ありそう。
0656デフォルトの名無しさん
2008/02/02(土) 12:42:32phobosのstd.conv.toが近いような。
マージできる予感?
0657デフォルトの名無しさん
2008/02/02(土) 14:56:02残念ながらD2.0には対応してないけど。
0658デフォルトの名無しさん
2008/02/02(土) 15:41:350659デフォルトの名無しさん
2008/02/02(土) 20:19:23/ ´_ゝ`)すいません、ちょっと場所お借りしますよ・・・
| /
| /| |
// | |
U .U
D言語BOFを
オープンソースカンファレンス2008 Tokyo/Spring http://www.ospn.jp/osc2008-spring/
セミナー会場にて開きます。
日程:3月1日(土) を希望していますが未定です。
会場:日本電子専門学校 7号館(東京都新宿区・JR大久保駅徒歩2分)
ustreamか何かで中継する予定です。
スピーカー
- k.inaba : D言語リファレンス 日本語版 わかったつもりになるD言語
- ABA : ABA Games
- shinichiro_h: SDL bindingほか
- bero: wxD
http://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF
/⌒ヽ
/ ´_ゝ`)それじゃ、お騒がせしました・・・
| /
| /| |
// | |
U .U
0660デフォルトの名無しさん
2008/02/02(土) 20:32:22俺地方だから、高嶺の花。
動画、マジで配信してください。
0661デフォルトの名無しさん
2008/02/02(土) 21:04:08中継じゃなく、Stage6とかニコニコにUPでお願い。
0662デフォルトの名無しさん
2008/02/02(土) 22:44:13わざわざ言わなくても出ると思うけどページに当日レポうp頼むね
0663デフォルトの名無しさん
2008/02/02(土) 22:45:27あ、行きたい
0664デフォルトの名無しさん
2008/02/02(土) 23:07:05期日までに今作ってるものが形になったら見せびらかしにいくかも。
0665デフォルトの名無しさん
2008/02/02(土) 23:15:080666デフォルトの名無しさん
2008/02/02(土) 23:21:04俺も地方だから無理。
ってか東京に住んでたらちょっと駅数個行くだけで有名人の講演が聴けたりするんだよな。
上京したことない俺にとっては、そんなの考えられない。イイナ...
0667デフォルトの名無しさん
2008/02/02(土) 23:40:42歩いて10〜20分程度置きに駅があるから実は数駅ではすまないwww
0668デフォルトの名無しさん
2008/02/02(土) 23:47:18行く予定です
0669デフォルトの名無しさん
2008/02/03(日) 01:14:15ウォルタンを呼ぼうぜ!
0670デフォルトの名無しさん
2008/02/03(日) 02:29:26はやく上京しちゃいなよ!
田舎で競争もせずにボーっとしてちゃ
技術の発展なんてありえないぜ!
0671デフォルトの名無しさん
2008/02/03(日) 02:42:39なんにしろ、こういう事を日本でやってるということを伝えねばなるまい
0672デフォルトの名無しさん
2008/02/03(日) 13:26:18ttp://www.digitalmars.com/webnews/newsgroups.php?search_txt=&group=digitalmars.D.announce
0673デフォルトの名無しさん
2008/02/03(日) 15:12:46てっきり関係者が投稿するんじゃないかと思ってたんだが・・・
0674デフォルトの名無しさん
2008/02/03(日) 15:39:49やっていいんじゃない?
そこで見つけたんだけど、DでOSをつくろうとしてる人たちがいるね
ttp://www.slate-project.org/start
0675デフォルトの名無しさん
2008/02/03(日) 16:03:13まだ日時とか確定じゃないんでちょっと待ってくれ
0676デフォルトの名無しさん
2008/02/03(日) 16:51:39どの配信方法がいいのかよく知らない。
実のところそんなんやったことはおろか、webcamもノートPCも持ってない。
ただ漏れも昔は地方在住だったから気持ちはわかるので、どうにかしたいと思った。
いざとなったら中古ノートでも買う気だけど、
みんな、オラにちからをわけてくれ
0677デフォルトの名無しさん
2008/02/03(日) 16:53:32会場にそういうシステムはないの?
ノートPCやWebcamとかは大学から借りれそうにも思うけど
0678デフォルトの名無しさん
2008/02/03(日) 16:54:20あとたぶん日本語オンリーだよね?
難しいかもしれないけど英語通訳がいればいいのにね
0679デフォルトの名無しさん
2008/02/03(日) 16:57:04関係者以外が投稿するのはどう考えても迷惑だろ
書かれた方もどう反応しろと
0680デフォルトの名無しさん
2008/02/03(日) 17:51:25了解しました
>>674
この辺がしびれるあこがれるw
Importance: Programming environment > Server > Users
>>676
ディレイ中継でもいい気がする
0681デフォルトの名無しさん
2008/02/03(日) 18:03:07途中で切れると嫌なので、peercastで流してホスィ。
0682デフォルトの名無しさん
2008/02/03(日) 18:31:120683デフォルトの名無しさん
2008/02/03(日) 21:00:47Cでウィンドウ表示するだけで、めっちゃ長いプログラムをコピーしなきゃいけないんだが。
0684デフォルトの名無しさん
2008/02/03(日) 21:05:25それは OS の API やライブラリのレベルではないか?
0685デフォルトの名無しさん
2008/02/03(日) 21:09:21そのとおりだぜ
0686デフォルトの名無しさん
2008/02/03(日) 21:46:35wxDのスピーカーの人って日本人?
0687デフォルトの名無しさん
2008/02/03(日) 22:51:53ライブラリ化されていなければ同じ手続きを踏むことになる。
言いだしっぺの法則発動しとく?
0688デフォルトの名無しさん
2008/02/03(日) 23:23:49webcamだと解像度低すぎて、文字とか映されたら全然読めない気がする。
0689デフォルトの名無しさん
2008/02/03(日) 23:56:32が撮影
>>678
が英語字幕作成
>>661
が変換してうpしる
0690デフォルトの名無しさん
2008/02/04(月) 00:46:40つまり
>>687 言いだしっぺの法則発動しとく?
ってことだなw
0691デフォルトの名無しさん
2008/02/04(月) 02:21:340692デフォルトの名無しさん
2008/02/04(月) 14:01:33字幕作成と変換はデータ送ってもらって家で作業できるからいいけど、撮影のために会場に行かなきゃならない>>688はきついなw
0693デフォルトの名無しさん
2008/02/04(月) 14:04:44ウィンドウ操作は言語がどうこうじゃないな。
でもDが扱えるGUIライブラリはたくさんあるから、使いやすいのもある。はず。
今DFL使い始めだけど、印象は良い感じ。
0694デフォルトの名無しさん
2008/02/04(月) 14:33:250695デフォルトの名無しさん
2008/02/04(月) 14:35:53俺はtango+DFL+DMD1で使ってる。tangoも2使えないからな...
0696デフォルトの名無しさん
2008/02/04(月) 16:51:12「これこれ!これがDの醍醐味っていうか力だよねー」
みたいなのはありました?
0697デフォルトの名無しさん
2008/02/04(月) 17:26:43スライスとリサイズと結合が簡単にできてGC搭載。メモリの負荷はどうなってるか知らないけども。
あれさ、配列が無責任にリターンできる感動は忘れがたい。
で、これの劣化版をC++で実装してみたんだけど、俺にはclass3個(カウンタ、アロケータ、それ)必要だったから保守が面倒。
参照カウントも正しいかわからんし。独自規格っぽいし。
0698デフォルトの名無しさん
2008/02/04(月) 18:15:33けど数値シミュレーション屋からするとDの配列はまだ行列演算が実装されてないから不便w
0699デフォルトの名無しさん
2008/02/04(月) 19:34:47Descentの気合いに鼻血吹いた
0700デフォルトの名無しさん
2008/02/04(月) 20:05:34正直勃った。
0701デフォルトの名無しさん
2008/02/04(月) 20:15:230702デフォルトの名無しさん
2008/02/04(月) 20:22:34FORTRAN みたいな配列演算ができればいいのにね、
って前にも言った事がある気がする。
0703デフォルトの名無しさん
2008/02/04(月) 20:31:53並列演算最適化の意味も含めてその機能はほしいんだけどねえ。
real[4][4] a, b, c;
c = a * b;
いいような悪いような。
構文解釈のあいまいさを除かないと無理ぽ。
動的配列と静的配列が同じ構文で扱えるのも利点のひとつなだけに。
0704デフォルトの名無しさん
2008/02/04(月) 20:39:06どうするか決めかねてるのか、単に他にやりたいことがあって気が回らないだけなのか。
0705デフォルトの名無しさん
2008/02/04(月) 20:56:50void main(){ Beep(2000, 30000); }
このコードを
EXETYPE NT
SUBSYSTEM WINDOWS,4.0
というdefファイルと
dmd main win.def
というコマンドでビルドすると、しばらくマウスポインタがバックグラウンドで作業中のもの(砂時計つき)に変わるんですが、
何ででしょうか?
0706デフォルトの名無しさん
2008/02/04(月) 21:07:470707デフォルトの名無しさん
2008/02/04(月) 21:13:070708デフォルトの名無しさん
2008/02/04(月) 21:13:24配列演算に関しては優秀だと思う。
0709デフォルトの名無しさん
2008/02/04(月) 21:25:58これで秀丸ともおさらばか
0710デフォルトの名無しさん
2008/02/04(月) 21:29:04はげどう
Dに実装するならぜひFortanライクな配列演算を実現して欲しい
それなら数値計算屋にもアピールできる
0711デフォルトの名無しさん
2008/02/04(月) 22:02:5330秒間音なってるから。耳壊す気ですか。
0712デフォルトの名無しさん
2008/02/04(月) 22:06:450713デフォルトの名無しさん
2008/02/04(月) 22:12:00時代を一足飛びですなぁ。これがうわさの伝説のIDEか!!
0714デフォルトの名無しさん
2008/02/04(月) 22:14:12どうすればいいんだろう。
0715デフォルトの名無しさん
2008/02/04(月) 23:16:49今では女の子にモテモテです!
0716デフォルトの名無しさん
2008/02/04(月) 23:46:43ついうっかり3.3.1.1落としちゃったんだが
0717デフォルトの名無しさん
2008/02/05(火) 00:36:17同じく3.3.1.1だが、普通に動くっぽい。
まあ、あんま詳しくは使ってないが。
0718デフォルトの名無しさん
2008/02/05(火) 00:59:22リターンといえば構造体も、
S f(){
S s;
s.a = 1;
return s;
}
が
void f(ref S s){
s.a = 1;
}
にコンパイラが最適化してくれて、とても速い、とかあるらしい。
0719デフォルトの名無しさん
2008/02/05(火) 01:00:580720デフォルトの名無しさん
2008/02/05(火) 01:04:55ttp://www.kmonos.net/alang/d/1.0/class.html
とか
ttp://www.digitalmars.com/d/1.0/class.html
とかを見てみたんですけど、public, private
がどう違うのかみたいな事が見当たらず、やや
当惑してます。
細かい所を調べたい時は、どこを見たらいいですか?
0721デフォルトの名無しさん
2008/02/05(火) 01:06:29http://www.kmonos.net/alang/d/1.0/attribute.html
0722デフォルトの名無しさん
2008/02/05(火) 01:06:55そこを読むには C++ や Java は前提知識と思った方がいい。
0723デフォルトの名無しさん
2008/02/05(火) 01:12:230724デフォルトの名無しさん
2008/02/05(火) 01:18:14開発途上の嫌なとこが目につくだけのような気がするが。
0725デフォルトの名無しさん
2008/02/05(火) 01:18:55伝説のIDE候補
0726デフォルトの名無しさん
2008/02/05(火) 01:22:28少なくともいちばんはじめの言語学習には向いてないよなw
0727デフォルトの名無しさん
2008/02/05(火) 01:27:26public:
void func() {
}
とかで書くとインデントがおかしい。俺だけかな。
フォーマッタの設定色々弄ったんだけど(弄ったから?)上手くできん。
Java式か、もしくは中括弧使えばいいんだけども。みんなどれ使ってるの?
0728デフォルトの名無しさん
2008/02/05(火) 01:27:57まさかと思ったら、もう返信が…
�dクスです。
属性のとこにあったんですね。
0729デフォルトの名無しさん
2008/02/05(火) 08:45:4030秒なのはサンプルだからです。
他に簡単に長いこと起動させるのを思いつかなかったので。
その30秒のうち、最初の6秒間くらいはポインタが砂時計つきに変わるんです。
ほかのコンソールアプリケーションを>>705のdefファイルを使ってビルドしたときも
同様に砂時計つきに変わるので、どうしてかと思ったのです。
0730デフォルトの名無しさん
2008/02/05(火) 09:24:58無茶言うな、と思ったけど
BO開くから日本のDユーザーにビデオかなんかでメッセージくれない? といったら
>That sounds great! What is the event where there will be the BOF? -Walter
割と好感触
>>672
投下してきました
このへん自分じゃ気づかなかったのでここに書いてみてよかった
0731デフォルトの名無しさん
2008/02/05(火) 11:01:15をるたーーーーーんんんん
0732デフォルトの名無しさん
2008/02/05(火) 13:00:55いくつもあるんだけどどれを落としたらいいですか?
0733デフォルトの名無しさん
2008/02/05(火) 13:04:403.3系列のWindows向けC/C++版でインストールしたけどうまくいったよ
まだほとんどいじってないが。
0734デフォルトの名無しさん
2008/02/05(火) 13:40:54"No features found on the selected site" ってなるorz
-clearしてんだけどなぁ…
0735デフォルトの名無しさん
2008/02/05(火) 13:41:39欲張るなら
オンライン講義かディスカッションができないかな?w
0736デフォルトの名無しさん
2008/02/05(火) 13:51:340737デフォルトの名無しさん
2008/02/05(火) 13:51:550738デフォルトの名無しさん
2008/02/05(火) 13:52:45>>735の追記だけどたまに国際会議や研究会でそういうのがあった
スクリーンに向こうの映像を表示してオンラインディスカッションとか
0739734
2008/02/05(火) 13:54:17全部落としてsite.xml編集するか…
0740デフォルトの名無しさん
2008/02/05(火) 13:57:49BOF
Birds of a Featherかな?
初めて聞いたが情報系だと一般的な呼称なのかしら?
0741デフォルトの名無しさん
2008/02/05(火) 14:47:09この手のイベントでは割とよく聞く言葉だな
0742デフォルトの名無しさん
2008/02/05(火) 14:51:46見つからない。どこいったんだ〜〜〜。
やっと。やっと伝説のIDEを使えると思ったんだけども。
0743デフォルトの名無しさん
2008/02/05(火) 14:53:48GCのおかげで気楽に関数を書けるし、
慣れ親しんだ.exeファイルを自分で作れる点も考えると、
かなり初学者に向いた言語と言えるんじゃないだろうか。
特にGCが無いと、結果を受け取るバッファへのポインタを引数で渡すとか、
戻り値はエラーコードのために空けとかなきゃとか、
必要なメモリサイズをあらかじめ調べとかなきゃとか、
関数を作って使うだけの時点で既に敷居が高くなる。
その制限から抜け出せないまま育つと、
複雑怪奇なシグニチャの関数を書いたり、そもそも関数を書かなかったりして……ああ畜生、
プログラミングは設計だっつってんだろダラズ共が!
0744デフォルトの名無しさん
2008/02/05(火) 14:54:40そか
計算物理畑の人だからかわからんかったw
0745デフォルトの名無しさん
2008/02/05(火) 14:56:00って>>739にかいてあったか。
0746デフォルトの名無しさん
2008/02/05(火) 14:59:03最後の2行でワラタ
0747746
2008/02/05(火) 15:08:17なんか経験がにじみ出てるみたいでちょっと面白かった。
0748デフォルトの名無しさん
2008/02/05(火) 17:38:05わかってまんがな
0749デフォルトの名無しさん
2008/02/05(火) 19:06:150750デフォルトの名無しさん
2008/02/05(火) 20:58:55むしろ>>743の言ってることが妙に真に迫っていたことにワラタんだ」
ってことでしょ。
0751デフォルトの名無しさん
2008/02/05(火) 22:25:260752デフォルトの名無しさん
2008/02/06(水) 00:40:17最初、保管機能はきいてるのに何故かセマンティックエラーでまくるし、
デバッグもブレークポイントはきくのにローカル変数が表示されず。
その後、何かの拍子にいきなり正常に動作し始めた。
機能はすごいんだが、eclipse を使い慣れてないせいでめちゃくちゃ使い辛い・・・
0753デフォルトの名無しさん
2008/02/06(水) 00:48:42http://shinh.skr.jp/d/porting.html
で入手して、中身は
http://www.ferzkopp.net/Software/SDL_rotozoom/
で入手して、MinGWのgccで -c でオブジェクトファイルを吐かせて
ゲームのソースとDMDでリンクしようとしたんだけど
「.o じゃなくて .obj しか対応してないよ!」
みたいに怒られたので困っています。
助けてください。
これが無いとスプライトの拡縮が出来ないんです。
0755デフォルトの名無しさん
2008/02/06(水) 00:52:480756デフォルトの名無しさん
2008/02/06(水) 01:03:43一個前の入ったね。
VCに慣れた身としてはちょっと戸惑ってるけど問題なさげ。
>>755
すげー高機能だなぁ。。。
0757デフォルトの名無しさん
2008/02/06(水) 01:05:13dll作るがよろし。
その後implib。
0758デフォルトの名無しさん
2008/02/06(水) 01:06:29import std.stdio;
~~~~~~~~~
writefln(
~~~~~~~
とか言われて俺涙目w
時間あるときにひとつずつ設定していかないとダメだな・・・
0759752
2008/02/06(水) 01:06:38なんか別の言語のパーサが動いている気がする。他の言語は切った方が良いのかな。
>>755
スペルチェックだけなら良いんですけど、ddoc 表示もできない。
正常動作中は import モジュールの上でF2押すと説明文出たのに、
セマンティックエラーが出てる状態だと
「単語`xxxx` のスペルが正しくありません。」なんてエラーが出る。
0760デフォルトの名無しさん
2008/02/06(水) 01:07:23import std.stdio;
~~~~~~~~~
0761デフォルトの名無しさん
2008/02/06(水) 01:07:47ちゃんとコンパイラの設定してるかい
0763デフォルトの名無しさん
2008/02/06(水) 01:18:11gccじゃなくて、Digital Marsのdmc か Borlandのbcc
にオブジェクトファイルを吐かせるといけるとおもわれまる。
0764デフォルトの名無しさん
2008/02/06(水) 01:21:56ソースみてなんとなくGCC_IOを定義するようにしてみたら行けたけど、これでいいのだろうか。
あとstringでエラーが出る。CompilerVersionちゃんと2.xにしたんだけどなぁ。
alias見てくれないのかなぁ。
0766デフォルトの名無しさん
2008/02/06(水) 01:36:42D2.0対応はまだ不完全で、invariant()まわりでちょっとバグがあるっぽいこと書いてあった。
0767753
2008/02/06(水) 01:37:57ここでDLLを落としたら簡単に出来ました。ありがとうございました。
0768デフォルトの名無しさん
2008/02/06(水) 01:46:36お ありがとう コンパイラの設定ができてなかったんだね
プロジェクト作成時に設定したらうまく行きました
0769デフォルトの名無しさん
2008/02/06(水) 01:57:50そうなのかー。サンクス。
まさか本当にAutoCompleteが(曲がりなりにも)利用できる日が来るとはな……。
ひとつの到達点だな。いち早くたどり着いてくれたのがdescentで嬉しいEclipseユーザ俺。
0770デフォルトの名無しさん
2008/02/06(水) 09:49:400771デフォルトの名無しさん
2008/02/06(水) 10:18:32俺のEclipseはDescent専用なのでこれのためだけに100M近く使うのがもったいないというだけだがw
0772デフォルトの名無しさん
2008/02/06(水) 11:25:290773デフォルトの名無しさん
2008/02/06(水) 11:45:39参加していいもの?
行くと場違いだったりしないかな。
0774デフォルトの名無しさん
2008/02/06(水) 14:27:540775デフォルトの名無しさん
2008/02/06(水) 14:39:190776デフォルトの名無しさん
2008/02/06(水) 17:25:26これも「D」言語?
0777デフォルトの名無しさん
2008/02/06(水) 17:52:020778デフォルトの名無しさん
2008/02/06(水) 17:52:24Borlandの次は、をるたんが標的なのかw
0779デフォルトの名無しさん
2008/02/06(水) 17:56:23本リリースではXのつく名前にするに違いない。
0780デフォルトの名無しさん
2008/02/06(水) 20:12:34DってDQNの略だよ。
0781デフォルトの名無しさん
2008/02/06(水) 20:23:56そんなの大丈夫だろ
0782デフォルトの名無しさん
2008/02/06(水) 21:16:410783デフォルトの名無しさん
2008/02/06(水) 23:24:240784デフォルトの名無しさん
2008/02/06(水) 23:56:330785デフォルトの名無しさん
2008/02/07(木) 00:01:49おいおい。「D」と名の付く全く別の言語だぞ。
> 「非開発者を対象とした宣言型言語」
ただでさえD言語の情報はWEB検索しづらいのに、
MSのせいで更に困難に・・・
0786デフォルトの名無しさん
2008/02/07(木) 00:03:590787デフォルトの名無しさん
2008/02/07(木) 00:13:21どこをどうさわっていいやらさっぱりだ
0788デフォルトの名無しさん
2008/02/07(木) 00:13:45吹いたw
ところで、
module main;
import tango.io.Stdout;
void main(){
C c1 = new C();
c1.Func();
Stdout.formatln( "&c1 = {:X8}", &c1 );
}
class C{
void Func(){
Stdout.formatln( "Func-this = {:X8}", &this );
}
}
を実行すると
Func-this = 0012FE74
&c1 = 0012FE84
となって、二つが違うアドレスなのはなぜ?
C++で同じようにthis調べると一緒だったけど。
0789デフォルトの名無しさん
2008/02/07(木) 00:21:21EclipseWiki
ttp://eclipsewiki.net/eclipse/?FrontPage
Eclipse入門
ttp://www.javadrive.jp/eclipse3/index.html
0790デフォルトの名無しさん
2008/02/07(木) 00:24:16&c1はc1があるスタックを指していて、&thisはthisがあるスタック(thisはアセンブラ的にC.Funcの引数として渡される)を指してる、多分。
0791デフォルトの名無しさん
2008/02/07(木) 00:34:22ありがたや
0792デフォルトの名無しさん
2008/02/07(木) 00:41:46Dのクラスは参照型だから、C++でいうとC*に相当する。
だから、cast(void*)c1 == cast(void*)this; になるはず。
0793デフォルトの名無しさん
2008/02/07(木) 00:54:54Cをstructでやってみれば、C++と同じ結果になると思うよ。
0794788
2008/02/07(木) 01:18:41なるほど。その通りになりました。
参照型。。。あれよく分からないんだよなあ。
0795デフォルトの名無しさん
2008/02/07(木) 01:25:540796788
2008/02/07(木) 02:19:19試してみたら、構造体ではthisは普通にポインタみたいです。
0797デフォルトの名無しさん
2008/02/07(木) 04:27:40これの存在意義がわからないです・・
どなたか教えていただけますか
0798デフォルトの名無しさん
2008/02/07(木) 08:28:04void foo() {
bar;
synchronized(lock) { hoge; fuga; piyo; }
buz;
}
とかでメソッド全体よりも細かい単位でロック制御できる
0799デフォルトの名無しさん
2008/02/07(木) 08:42:34横レス失礼
それって、Mutexとどこか違うの?
逆に、Tangoのtango.core.sync.Mutexって意味あるの?
0800デフォルトの名無しさん
2008/02/07(木) 08:47:000801デフォルトの名無しさん
2008/02/07(木) 08:51:39要するにMutexだよ。
tangoのMutexはsynchronized文での自動lock/unlockだけじゃなくて、
手動でもlock/unlock/tryLockが出来る
http://www.dsource.org/projects/tango/wiki/ChapterThreading#Mutex
0802799
2008/02/07(木) 09:50:33大した違いはないけど、より細かいことがやりたかったら
synchronized ( Expression ) ScopeStatement
だの、Mutexクラスだのを使えってことか。
0803797
2008/02/07(木) 11:41:03ありがとうございました
0804デフォルトの名無しさん
2008/02/07(木) 12:04:54痛い目を見るよ、この結果は。
0805デフォルトの名無しさん
2008/02/07(木) 12:20:340806デフォルトの名無しさん
2008/02/07(木) 13:50:190807デフォルトの名無しさん
2008/02/07(木) 13:53:130808デフォルトの名無しさん
2008/02/07(木) 18:33:180809デフォルトの名無しさん
2008/02/07(木) 18:50:21デバッグ機能としてのbreak-pointや、watchもばっちりなんですか?
0810デフォルトの名無しさん
2008/02/07(木) 18:51:32今のところこの二つしかない
ttp://shoo.s20.xrea.com/shoo/programing/
ttp://f17.aaa.livedoor.jp/~labamba/?tango
0811デフォルトの名無しさん
2008/02/07(木) 20:51:11ttp://namidame.2ch.net/test/read.cgi/news/1202382434/
0812808
2008/02/07(木) 20:52:35ありがとうございます。
見て来ましたが、ぜんぜん日本語化進んでないって事ですねw
英語ダメダメだから、安物の翻訳ソフトでも買おうかな。
0813デフォルトの名無しさん
2008/02/07(木) 21:15:01ちゃんとDLLからSetWindowsHookEx呼んでるし、SetWindowsHookExは成功してるみたいないんだけどな。
Dだとグローバルフックが出来ない理由ってある?(ローカルは出来た)
もうちょっとコード見直してきます。
0814デフォルトの名無しさん
2008/02/07(木) 21:44:24ウォルタンはSunからは何も言われなかったんだろうけど。
Firebirdほど大きな問題にはならない気がするけど、
やっぱややこしいから変えてほしいところだ。
0815デフォルトの名無しさん
2008/02/07(木) 21:48:460816デフォルトの名無しさん
2008/02/07(木) 21:55:14グローバルフックなら共有データセグメントとかメモリマップトファイルとか使って、
フックハンドルをプロセス間で共有できるようにしないといけないよ。
ローレベルフックを使うのも一つの手。
0817813
2008/02/07(木) 22:02:14今までずっとそう思ってたんですが、WindowsXP/2000ではCallNextHookExの第一引数はNULLでいいらしいです。
第一引数に何か渡しても無視されるそうな。
0818813
2008/02/07(木) 22:04:110819デフォルトの名無しさん
2008/02/07(木) 22:06:510820デフォルトの名無しさん
2008/02/07(木) 22:11:22http://headlines.yahoo.co.jp/hl?a=20080206-00000007-cnet-sci
0821819
2008/02/07(木) 22:12:07そのVCで作ったDLLをDのmainから呼び出した場合上手くいきました。
0822813
2008/02/07(木) 22:13:180823デフォルトの名無しさん
2008/02/07(木) 22:14:45何回同じ話題振ったら気がすむんだよww
同じスレぐらい検索しろ
0824デフォルトの名無しさん
2008/02/07(木) 22:32:00別物なんだよ。
0825デフォルトの名無しさん
2008/02/07(木) 22:36:190826デフォルトの名無しさん
2008/02/07(木) 22:44:430827デフォルトの名無しさん
2008/02/07(木) 23:06:27ソースコード見てみたーい
0828813
2008/02/07(木) 23:19:49>>827
というわけで載せるためにソース整形してきます。
0829デフォルトの名無しさん
2008/02/07(木) 23:30:07あ、ほんとだ。
向こうのnewsでも「"D"も有名になったもんだ =P」なんて皮肉られてる……のかな? 英語ヨクワカラナーイ。
0830813
2008/02/07(木) 23:50:35// test_hook.d
module test_hook;
import win32.winbase;
import win32.windows;
static import tango.stdc.stdio;
import tango.stdc.stringz;
import tango.io.Stdout;
pragma( lib, "tango-user-dmd.lib" );
HANDLE g_hModule = cast(HANDLE) null; // DLLのモジュールハンドル
HHOOK g_hHook = cast(HHOOK) null;
extern (C){
void gc_init(); // GC初期化
void gc_term(); // GC終了
void _minit(); // モジュールリスト初期化
void _moduleCtor(); // モジュールコントラクタ実行
void runModuleUnitTests(); // 単体テスト実行
}
0831813
2008/02/07(木) 23:51:14switch(ulReason){
case DLL_PROCESS_ATTACH:
gc_init(); // GC初期化
_minit(); // モジュールリスト初期化
_moduleCtor(); // モジュールコンストラクタ実行
runModuleUnitTests(); // 単体テスト実行
g_hModule = hModule;
break;
case DLL_PROCESS_DETACH:
gc_term(); // GC終了
tango.stdc.stdio._fcloseallp = null; // DLLが終了しても標準入出力を閉じないようにする。
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
return false;
}
return true;
}
export extern(Windows) void HookStart(){
g_hHook = SetWindowsHookEx( WH_KEYBOARD, cast(HOOKPROC)&KeyboadProc, g_hModule, 0 );
}
0832813
2008/02/07(木) 23:51:53UnhookWindowsHookEx( g_hHook );
}
extern(Windows) LRESULT KeyboadProc( int code, WPARAM wParam, LPARAM lParam ){
if( code != HC_NOREMOVE && code >= 0 ){
MessageBox( cast(HWND)null, toString16z( "Key pushed" ), toString16z( "test_hook" ), cast(UINT)0 );
return 0; //処理をした。
}
return CallNextHookEx( cast(HHOOK)0, code, wParam, lParam );
}
0833813
2008/02/07(木) 23:53:57↓main.exeのソース
// main.d
module main;
import win32.winbase;
import win32.windows;
import tango.stdc.stringz;
pragma( lib, "tango-user-dmd.lib" );
const wchar[] HOOKDLLNAME = "test_hook.dll";
alias extern(Windows)void function() FUNC;
FUNC HookStart, HookStop;
void main(){
auto hMod = LoadLibraryW( toString16z( HOOKDLLNAME ) );
HookStart = cast(FUNC) GetProcAddress( hMod, "HookStart" );
HookStop = cast(FUNC) GetProcAddress( hMod, "HookStop" );
HookStart();
MessageBox( cast(HWND)0, toString16z("フックしています。"), toString16z("main"), cast(UINT)0 );
HookStop();
FreeLibrary( hMod );
}
0834813
2008/02/07(木) 23:58:15// test_hook.def
LIBRARY 'TEST_HOOKDLL'
EXETYPE NT
CODE PRELOAD DISCARDABLE
DATA PRELOAD SINGLE
EXPORTS
HookStart @1
HookStop @2
--------
以上です。
環境はtango 0.99.4 ( dmd 1.024 ), Binding Win32API
-Unicodeでコンパイル。
0835813
2008/02/08(金) 00:03:33フック中に他のアプリでキーを押すとMessageBoxを出します。
が、実際は反応してくれません。メモ帳起動->main.exe->メモ帳でキーボードを押す、として反応しませんでした。
さっき気づいたのですが、なぜかほかのコマンドプロンプト上のキーボード操作には反応するみたいです。
0836デフォルトの名無しさん
2008/02/08(金) 00:50:18俺もグローバルフックプロシージャ内で try/catch() 文書いたら全プロセスがこけた。
SEHフレームの構築で何かやらかしてんじゃないかと予想してるが。
0837デフォルトの名無しさん
2008/02/08(金) 01:00:420838デフォルトの名無しさん
2008/02/08(金) 01:03:480839デフォルトの名無しさん
2008/02/08(金) 01:09:25http://news24.2ch.net/test/read.cgi/bizplus/1202379742/
0840デフォルトの名無しさん
2008/02/08(金) 01:10:400841813
2008/02/08(金) 01:11:27全角スペース挿入だとコンパイルする人が半角に直すのが面倒かと思い、
nbspを入れるのも考えたんですけど、それが一般的なのかわからなかったので、そのまま入れました。
ソースを張るときはどうするのが一般的ですか?
0842デフォルトの名無しさん
2008/02/08(金) 01:15:12複数ファイルだとビルドするのも面倒だしねえ。
0843デフォルトの名無しさん
2008/02/08(金) 01:19:25>>811
>>820
>>839
開発開始を宣言しただけなのに大々的に取り上げられすぎだろw
0844デフォルトの名無しさん
2008/02/08(金) 01:23:48stringがエラー扱いにならなくなってるな。ありがたい。
0845デフォルトの名無しさん
2008/02/08(金) 01:32:08全体的にautocompletionが賢くなって、aliasの扱いが改善されてるらしいな。
"str".tolower()とかはまだエラーって言われるけど。
0846デフォルトの名無しさん
2008/02/08(金) 01:34:21こうやって宣伝に乗っかるわけか。
0847デフォルトの名無しさん
2008/02/08(金) 01:45:45ちょw DigitalMars完全否定w
0848デフォルトの名無しさん
2008/02/08(金) 02:00:25自分とこの環境では、メモ帳が固まったまま応答無くなる。
0849813
2008/02/08(金) 02:10:22defファイルの
DATA PRELOAD SINGLE
を
DATA PRELOAD
にすることでちゃんとフック出来ました。
defファイルの書式(メモリ指定あたり)とか調べても見つからなかったからサンプルのまま使ってたけど、ここだったんですね。
C++の方ではdefファイルを書かずに作っていたので普通にフック出来ていたようです。
>>848
試していただいてありがとうございます。
次からは長いコードはアーカイブするなり気をつけますm
あと、defの書式やオプションの解説はどこかにありますか?
0850813
2008/02/08(金) 02:17:400851デフォルトの名無しさん
2008/02/08(金) 02:25:36http://www.digitalmars.com/ctg/ctgDefFiles.html
0852デフォルトの名無しさん
2008/02/08(金) 06:06:17あれだな、情報操作に一番騙されるのって、「自分の頭で咀嚼する」意欲だけはあるけど、
調べる気があんまり無く、誘導されるままに「自分なりの見解」に辿り着いて満足しちゃうタイプの人間だよな。
この短いブログを書く時間で、D言語が既に存在するかどうかなんて調べられるのに、
「あるかどうか」という事実より、「実はなかったということのようです」という見解をひけらかすほうが大事なわけだ。
まったく思考が発展しない馬鹿のほうが、その点では無害かも。
0853デフォルトの名無しさん
2008/02/08(金) 07:38:26DMDなんて同人サークルが勝手に作った独自言語程度に思われてたらやだな。
0854デフォルトの名無しさん
2008/02/08(金) 09:26:11IT世界的に見たらどれくらいの影響力があるんだろう。
0855デフォルトの名無しさん
2008/02/08(金) 10:03:49Cコンパイラ界、ECMAScript界なら 結構いいはずだぜ!
たぶん
0856デフォルトの名無しさん
2008/02/08(金) 10:37:19ウィキペディア(英語のほう)みた感じだと
小規模なベンチャーかな?って思った。
0857デフォルトの名無しさん
2008/02/08(金) 12:07:13コンパイラ界でWalter Brightの名前を知らん人間はいないだろ常識的に考えて、くらいの影響力。
0858デフォルトの名無しさん
2008/02/08(金) 12:21:56めんどくせえ
0859デフォルトの名無しさん
2008/02/08(金) 12:39:270860デフォルトの名無しさん
2008/02/08(金) 12:53:440861デフォルトの名無しさん
2008/02/08(金) 14:38:04http://www.wikiroom.com/sakurai/index.php?DJcode
これを使ってみたんですが、全く同じデータを渡してもたまに末尾にゴミが混じるようで変換時に末尾に〓がついたりします。
0862デフォルトの名無しさん
2008/02/08(金) 17:53:45iconvとか使ってみるといいかも。
0863デフォルトの名無しさん
2008/02/08(金) 18:28:57キミがそいつのバグを取ってくれたら、38万の日本のDユーザが喜ぶよ
0864デフォルトの名無しさん
2008/02/08(金) 18:56:45ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF
>特に仕事に使ったという事例。2chにいたらしい
0865デフォルトの名無しさん
2008/02/08(金) 18:58:46ちなみにVC++2008Expressは28M
0866デフォルトの名無しさん
2008/02/08(金) 20:15:2028と83なんて大して変わらない。
0867デフォルトの名無しさん
2008/02/08(金) 20:16:170869デフォルトの名無しさん
2008/02/08(金) 21:03:13GoogleDesktopに600Mほど食われたのに比べればどうということはない
0870デフォルトの名無しさん
2008/02/08(金) 21:06:11メモリ512MBノート使ってますorz
増設しようかと思ったけど今主流のノートメモリの一つ前のタイプらしい。
新しいノートに変えたときに流用出来ないんで、やめときました。
0871デフォルトの名無しさん
2008/02/08(金) 21:12:36>メモリ1G五千円
ノートか?
今は樋口一葉で2GB買えるだろw
0872デフォルトの名無しさん
2008/02/08(金) 21:14:340873デフォルトの名無しさん
2008/02/08(金) 21:22:32そりゃ味を選ばないならいくらでも食えるだろ。
0874デフォルトの名無しさん
2008/02/08(金) 21:29:45なぜ自分で試さない?
ttp://www.dsource.org/projects/descent/wiki/DebuggingPrograms
ttp://ddbg.mainia.de/doc.html
0876デフォルトの名無しさん
2008/02/08(金) 22:07:45ノーブランドだったら1GBで英世2枚だよ
メーカー製でも4枚要らない
そのくらいのことも調べずに価格の最新事情を指摘されたくらいで「味を〜」とか騙らないでね
0877デフォルトの名無しさん
2008/02/08(金) 22:23:090878デフォルトの名無しさん
2008/02/08(金) 22:23:36vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
0879デフォルトの名無しさん
2008/02/08(金) 22:25:34ぺろぺろ
0880デフォルトの名無しさん
2008/02/08(金) 22:28:270881デフォルトの名無しさん
2008/02/08(金) 22:28:59それとも口だけ?
0882デフォルトの名無しさん
2008/02/08(金) 22:30:340883デフォルトの名無しさん
2008/02/08(金) 22:33:11えーと・・・
この場合つっこんだら負けなんだろうな。
0884デフォルトの名無しさん
2008/02/08(金) 22:33:280885デフォルトの名無しさん
2008/02/08(金) 22:34:40だよね。さっきSleipnirのスレで同じ文章見かけた。
0886デフォルトの名無しさん
2008/02/08(金) 22:35:020887デフォルトの名無しさん
2008/02/08(金) 22:38:110888デフォルトの名無しさん
2008/02/08(金) 22:41:03俺さっきから得も言われぬ哀れみを感じて表情が微妙なままだ。
0889デフォルトの名無しさん
2008/02/08(金) 22:44:51マジなら2ちゃんねら総力を上げて潰すが
0890デフォルトの名無しさん
2008/02/08(金) 22:45:30お前らコピペだと分かってるならスルーしろよw
それくらいもできないのかこのオタクどもはww
0891デフォルトの名無しさん
2008/02/08(金) 22:48:02D言語スレでやるこっちゃないけどな。
0892デフォルトの名無しさん
2008/02/08(金) 22:48:380893デフォルトの名無しさん
2008/02/08(金) 22:55:02foreachの頭で毎回ディスクにアクセスしてデータを取り出してるんでしょうか?
BufferedFileを使ったら速度が20倍になったんですが。
0894デフォルトの名無しさん
2008/02/08(金) 22:59:22釣りも後味良いのと悪いのとがあるんだよな
そういやなんだか2ちゃんねるの中で話されていること(煽りやら学歴厨やネトウヨその他の・・・)を
マジに取ってしまってる人が最近出始めてきてるように思う
こりゃあやばいかもわからんよ10年後は
0895デフォルトの名無しさん
2008/02/08(金) 23:01:50そうだよ。それも1byteずつReadFileなりreadなりしてるよ。
なんで、ソースついてるのに読まないのか不思議だ。
0896デフォルトの名無しさん
2008/02/08(金) 23:03:28年の離れた上司がそんな感じで萎えるとか愚痴られた。10年経たなくとも一部はもう駄目かもしらんね!
0897デフォルトの名無しさん
2008/02/08(金) 23:03:460898デフォルトの名無しさん
2008/02/08(金) 23:09:49そうなんですか。。。
単純な文字列変換なんですがperlより遅くなってしまってどうなってるのかちょっと不思議に思ったので。
ソースは読んでも多分わからないので読まなかったのです。
モジュールの中身を知らなくても動くには動くので今まで気にしたことがなかったのですが。
これからは気にして読んで理解することからはじめようと思います。
どうもです。
0899デフォルトの名無しさん
2008/02/08(金) 23:19:08TangoのウェブサイトからDMDバンドル落としてきて、
D>Installed Compilersからパスを設定すれば普通に動いたよ。
0900デフォルトの名無しさん
2008/02/08(金) 23:27:39プログラムを実行してグローバルフックかけた状態で、ファイルのショートカットのプロパティを開いてリンク先を変更すると、エクスプローラがフリーズして電源切るしかなくなるのだが、同じ症状出る?
俺は、これがあるせいでDで作るのをあきらめた過去があって、ほかの人はどうなのかちょっと聞いてみたい。
GDCやVC++だと大丈夫なんだけどな。
ちなみにOSはXP。
0901813
2008/02/08(金) 23:33:55フックの種類は?
0902デフォルトの名無しさん
2008/02/08(金) 23:36:45出来ました。設定する前にプロジェクト作って、その後に設定したからエラーのままだったらしい。
設定後に一端プロジェクト消してもう一回作ったらちゃんと動いた。
設定変えたらちゃんとプロジェクトに反映してほしいな。。再起動はさせてたんだけど。
0903900
2008/02/08(金) 23:40:09>>830あたりのコードと同じ、普通のキーボードフック。
tango入れてないから試せないけど、このコードでも同じ症状が出るはずなんだけど。
0904デフォルトの名無しさん
2008/02/08(金) 23:42:230906813
2008/02/08(金) 23:49:27explorer何者だよ...
0907813
2008/02/09(土) 00:00:010908900
2008/02/09(土) 00:16:04GDCやVC++だとなんともないから、たぶんリンカが悪いと思うんだけど、モジュール定義ファイルをいくらいじくっても改善しなかったんだよね。
>ちなみにWM_GETMESSAGEフックではならなかった。
WM_GETMESSAGEはすべてのメッセージをピックアップするみたいだから、必要なメッセージを抽出すれば使えるかもしれない。
明日にでも試してみるよ。
ありがとう。
0909813
2008/02/09(土) 00:30:21代用ならLLかGETMESSAGEだな。
ちょっと調べたことを列挙。
LLはNT/2000だけ、DLLも作成しなくていい。
GETMESSAGEはメッセージの書き換えとかも出来る。もちろんWM_KEY系も来る。
WH_KEYBOARDはWM_KEYUP/WM_KEYDOWNの時に呼ばれるらしい。おそらくGETMESSAGEの場合と同じタイミングのフック。
だからGETMESSAGEで代用は出来ると思います。
でもDLL自体の問題がどうにもならないのは少し気持ち悪いな。
0910デフォルトの名無しさん
2008/02/09(土) 00:31:03フォルダオプションで、別プロセスでフォルダ開くようにしてるから
メインのエクスプローラには影響なし。
タスクマネージャが起動できるのなら、電源切らんでも、
メニューのファイル→新しいタスクの実行で、
explorerを入力してOK押せば回復するはずだけど。
これ使った、ソースとexe+dll
ttp://a-draw.com/uploader/src/up31499.zip.html
0911813
2008/02/09(土) 00:34:40新しいタスクの実行も試してみたけど反応無しでした。既にexplorerのプロセスがあるから多重起動だと思われたんじゃないかと。
再起動じゃなくてタスクマネージャからログオフして回避した。
0913デフォルトの名無しさん
2008/02/09(土) 00:45:56ttp://a-draw.com/uploader/upload.html
up31499.zip
0914900
2008/02/09(土) 00:48:31俺もちょっと過去に調べたことを・・
LLはフックだけならDLL作らなくていいけど、他アプリでの固有の状態、たとえば、キーボードメッセージがきたときにコントロールキーの状態が知りたいというときには、やっぱりDLLを作る必要がある。
GetKeyboardStateはローカルな状態しか取得できないから、他アプリ上でフックしたときの状態はDLLの中のプロシージャから取得するしかない。
だから、GETMESSAGEにはちょっと期待。
>でもDLL自体の問題がどうにもならないのは少し気持ち悪いな。
これには同意。
0915813
2008/02/09(土) 00:48:480917813
2008/02/09(土) 01:02:50えーと、>>912に書いたように、解凍すると中身がup31499というファイル一つになってます;
アップローダが何か変なことしたんじゃないかと思いますが。
0918900
2008/02/09(土) 01:11:57自分は
1.913のアドレスをブラウザで開く。
2.up31499.zipのリンクをクリックする。
3.さらにup31499.zipのリンクをクリックする。
でちゃんと
hook
-bin
--main.exe
--test_hook.dll
-src
--main.d
--test_hook.d
--test_hook.def
という内容のものが出てくるよ。
Noah使用。
0919813
2008/02/09(土) 01:17:51zipを保存->Lhaforgeで解凍->up31499.zip_extractedというファイルが出来る->それをLhaforgeで解凍->hookフォルダが出来る。
なんだろ、これ、二重圧縮?
0922デフォルトの名無しさん
2008/02/09(土) 02:00:29なんかだれかほしがってた気がするけど。
0923デフォルトの名無しさん
2008/02/09(土) 02:04:170924813
2008/02/09(土) 02:07:430926デフォルトの名無しさん
2008/02/09(土) 03:24:13D++(笑)
D#(笑)
とかw
0927デフォルトの名無しさん
2008/02/09(土) 04:36:270928デフォルトの名無しさん
2008/02/09(土) 05:36:260929デフォルトの名無しさん
2008/02/09(土) 07:22:490930デフォルトの名無しさん
2008/02/09(土) 07:27:22素直にdefファイルなり/exet: /su:なりで指定しろよ…
0931デフォルトの名無しさん
2008/02/09(土) 09:20:450932デフォルトの名無しさん
2008/02/09(土) 11:41:35確かにフリーズするが、ほっといたら直ったが(一分くらい?)
たしかに、このバグはちょっと困るなぁ……
0933デフォルトの名無しさん
2008/02/09(土) 17:19:37導入ガイド。@DMD+Phobos編@Windows@20080209
1,DIGITAL MARSのサイトからDMD.zipとDMC.zipを落としてくる。
--筆者はVer1.015で試している。
--dmd.2.010.zipでも同じ構成と思われる。
--圧縮ファイルは念のためとっておきましょう。
2,両方を解凍。
--DMD.zip->(DMDとDM)
--DMC.zip->(DM)
3,DMD側のDMにDMC側のDMを上書き。同じフォルダにDMDとDMになる。マージするんです〜。
4,任意でPATHを通す。
--c:\dmd\dmd\bin;c:\dmd\dm\bin とか。Pathの区切り文字は ; です。
---場所は貴方が決めます。
--XPの場合:マイコンピュータを右クリック->システムのプロパティ->詳細設定タブ->環境変数ボタン->Path
---開発ユーザのユーザPATHにするのが良いと思います。
5,テストします。
--ソースを用意しましょう。
---文字コードはUTF-8オンリーです。SJISとかEUCとかではだめです。
--お好みでbudやdsssを用意しましょう。
---dsss:http://www.dsource.org/projects/dsss/
----筆者は使ったこと無いです。
---bud:http://www.dsource.org/projects/build/
----budはpath上の日本語を許容しません。
0934デフォルトの名無しさん
2008/02/09(土) 17:22:050935デフォルトの名無しさん
2008/02/09(土) 17:43:15で、手元にまとめて置いておきたかったんです〜。
そういえば、わなD有りましたね。。。
ちょっとのぞいてこよう。
0936デフォルトの名無しさん
2008/02/09(土) 17:48:44Descentのことも書いてあるし。
車輪の再発明再び!XP
0937デフォルトの名無しさん
2008/02/09(土) 17:57:490938デフォルトの名無しさん
2008/02/09(土) 17:58:270939デフォルトの名無しさん
2008/02/09(土) 17:59:39誤爆?
なんとなく言いたいことが不明だが
テンソルのことかな?
行列の添え字が3つ以上あったりするやつ
0940デフォルトの名無しさん
2008/02/09(土) 18:03:07「もっさりしないEclipse」はEclipseユーザの誰もが夢見る代物だと思う。
実現するかはともかく。
0941デフォルトの名無しさん
2008/02/09(土) 18:04:48D言語で書かれたIDEは、D言語が実用にたえることの証明になると思うよ。
がんばれ
0942デフォルトの名無しさん
2008/02/09(土) 18:07:05あー、行列って言わないのね。もっと大きな体系があるのか。
勉強になった。Thx!
0943デフォルトの名無しさん
2008/02/09(土) 18:07:39>>939の追記だけど普通に多次元行列は定義できるよ
んで扱いやすい性質を持ってるのがテンソルと呼ばれてる
大雑把に言えばこんな感じかな?
0944デフォルトの名無しさん
2008/02/09(土) 18:13:16把握した。・・・多分。
テンソルって言うのは初めて聞いたよ。
調べてみる。俺、文系だけど〜。^^;
0945デフォルトの名無しさん
2008/02/09(土) 19:25:39XX年後、D言語にテンソル型が実装されることをこのスレの誰も知る由がなかった。
0946デフォルトの名無しさん
2008/02/09(土) 19:40:050947デフォルトの名無しさん
2008/02/09(土) 19:51:59めでたしめでたし
0948デフォルトの名無しさん
2008/02/09(土) 20:11:28FORTRANとかMATLAB(GNU Octave)とかがあるから、それに対抗しようとするとさらに悩める
>>944
こういうのがある
ttp://www.oonumerics.org/blitz/
0949デフォルトの名無しさん
2008/02/09(土) 20:16:43計算の速さ考えるなら別だけど
0950デフォルトの名無しさん
2008/02/09(土) 20:37:18いろいろありますねえ。
0951デフォルトの名無しさん
2008/02/09(土) 21:53:06んで、対角化や特異値分解とかやってくれるの。
粗行列と Lanços 対角化もサポートしてくれると最高。
0952デフォルトの名無しさん
2008/02/09(土) 21:54:40手続き型と静的なシンボルリストをあわせもつSystem.out.println標準内蔵だしな
0953デフォルトの名無しさん
2008/02/09(土) 23:09:35ないなら何が一般的かな?
0954デフォルトの名無しさん
2008/02/09(土) 23:14:55遅レスだけど…。
tangoのmutexがどうゆう仕様かは知らないんだが、
synchronized文はロック・アンロック(ロック変数の処理)をプログラマが
気にしなくていいのが、pthreadとかのmutexと違うところ(良いところ)だと思う。
例外発生時とかのイレギュラーな動作の時もアンロック保証がされてる所。
変数に対してじゃなくて、制御フローに対するatomicの保障を言語レベルで行う
ってのはうれしいことじゃないかな。
(変数に対するatomic保障もできるけど)
スレッドプログラミング超初心者の時に、下みたいなプログラムを書いて泣いた覚えあり。
下は極端な例(&雰囲気)だけど…。
下の例で、ほかにたとえば関数func()内で例外が発生してどっか飛んだ場合のアンロックは…、とか。
まあ、他の人はそんなミスしないのかもしれない…。
int a; // ロックに使用するグローバル変数
int hoge() {
bool b;
lock(a); // ロック開始
b = func();
if (b){
return 10; // bがtrueだとロック解除されないで、hoge()を抜けてしまう…
}
unlock(a); // ロック解除、falseの時のみ解除される
return 0;
}
基本、クリティカルセクションは必要最低限で。
そういう意味で、上の例のプログラムはよくないかもね。
(もしfunc()内全体の処理をロックする必要がないなら)
0955デフォルトの名無しさん
2008/02/09(土) 23:18:54lock(a);
scope(exit) unlock(a);
0956デフォルトの名無しさん
2008/02/09(土) 23:49:150957デフォルトの名無しさん
2008/02/09(土) 23:51:48あれ無しでは生きていけない体になりました
特に害も無さそうだし
0958デフォルトの名無しさん
2008/02/10(日) 01:25:14マルチリソースっていう感じのはまだなさそう。
文字コード自体はUTF-8採用で国際化という感じになってる。
0959デフォルトの名無しさん
2008/02/10(日) 01:25:16せっかくネイティブで複素数対応してるんだし。
0960デフォルトの名無しさん
2008/02/10(日) 01:47:550961デフォルトの名無しさん
2008/02/10(日) 01:52:040962デフォルトの名無しさん
2008/02/10(日) 01:54:05GC搭載ですよ。
Cライクって事は過去の遺産、コーディングの癖とか使えるって事です。適合してるかは別ですが。
0963デフォルトの名無しさん
2008/02/10(日) 01:57:120964デフォルトの名無しさん
2008/02/10(日) 02:51:27今更言語Dを勉強するほど若くもないので参考にしておきましょう。
デジタルマースにもこのDコンパイラが確かにあった。
0965デフォルトの名無しさん
2008/02/10(日) 02:55:280966デフォルトの名無しさん
2008/02/10(日) 03:10:00見落としてた。ありがと
>>668
本人かどうかわからんけど、発表する気があるなら時間配分とか(NDAがらみで録画公開不可とか)あると思うんでスピーカの誰かに連絡くれまいか
当日いきなり「お、そこに○○がきてるじゃないか。お前のほうが詳しいからお前話せ」みたいなのもカッコいいとは思いますが
>>686
漏れだ。ただ今のメンテナは漏れじゃないからサイトやドキュメントは任せてる
0967デフォルトの名無しさん
2008/02/10(日) 08:49:33C++だって簡単にGC実装できるんだから
http://donguri.sakura.ne.jp/~shock8/wisper/gc1.html
リアルタイム性が要求されるものはメモリを手動で管理し、特にその必要がないものにはGCで管理の負担を減らすといった使い分けができる
0968デフォルトの名無しさん
2008/02/10(日) 08:54:31ゲームにもよると思うけどな。
でも、今時のGCで困るほどリアルタイム性が要求されるゲームなんて
そうそうないと思うぞ。
0969デフォルトの名無しさん
2008/02/10(日) 09:00:18DもGC使う/使わないは切り替えられると思う。
GC使う場合でも
http://www.sun-inet.or.jp/~yaneurao/dlang/Chapter-06.html
あたりを気をつければゲームも問題なく作れる。
0970デフォルトの名無しさん
2008/02/10(日) 09:31:26そっか、ってことはまずはそこから作らなきゃならないのか。ありがとう
0971デフォルトの名無しさん
2008/02/10(日) 09:33:09うぉるたんも力説してるけどGCは怖くないよ!
0972デフォルトの名無しさん
2008/02/10(日) 12:19:56その時だけ一時的に GC 止めればいいしな。
0973デフォルトの名無しさん
2008/02/10(日) 12:28:300974デフォルトの名無しさん
2008/02/10(日) 12:39:120975デフォルトの名無しさん
2008/02/10(日) 12:46:000976デフォルトの名無しさん
2008/02/10(日) 12:47:210977デフォルトの名無しさん
2008/02/10(日) 12:49:39無理無理無理無理
0978デフォルトの名無しさん
2008/02/10(日) 12:52:42実用アプリじゃほぼ無理だろうが。
0979デフォルトの名無しさん
2008/02/10(日) 12:56:59方法を調べたことは無いけど、
http://www.kmonos.net/alang/d/2.0/dll.html#Dcode
のDLLのコンパイルの説明で
>dmd mydll.obj \dmd\lib\gcstub.obj mydll.def -g -L/map
>mydll.obj を mydll.dll という名前のDLLへとリンクします。 gcstub.obj は必須ではありませんが、これをリンクすることで、 不要なGCコードを省くことができます。 およそ12Kbの削減になります。
ってあるのが関係あるかも
GCをオフなるようにしてGCコードを省くようにすればGCの機能は消えるんじゃない?
0981977
2008/02/10(日) 13:34:570982デフォルトの名無しさん
2008/02/10(日) 13:42:25そこまで言うならC++でGCを実装してABA GamesのOpenGLゲームやXNAのサンプルゲームと同じクオリティを省メモリで作って上げてくれ
C++なら便利みたいだからD言語やC♯より楽にGCアプリを作れるんだろ?
0983デフォルトの名無しさん
2008/02/10(日) 13:43:51まあ確かに簡単にオフに出来ないのなら言語仕様変えて欲しいな。(俺は今の言語仕様でGCを完全に切れるかは知らない)
でもDは標準でGC有り、C++は標準でGC無し。どちらも有り無し選択可能ってだけで変わらないんじゃないかな。
C++でGC使うのに外部ライブラリ使う準備する手間と、DでGCを切る手間はどちらも変わらない気がする。
0984デフォルトの名無しさん
2008/02/10(日) 13:44:330985デフォルトの名無しさん
2008/02/10(日) 13:48:300986デフォルトの名無しさん
2008/02/10(日) 13:52:430987デフォルトの名無しさん
2008/02/10(日) 14:21:400988デフォルトの名無しさん
2008/02/10(日) 14:50:03言語組込みの方がコードは圧倒的に読みやすくなると思う。
それでもC++を使う方がベターな分野は常にあるんだろうけど、
そういう分野はできればこの先減っていって欲しい。
GCをもっと簡単かつ細かに制御できるれば、Dの適用範囲を広げられるかもねぇ。
0989デフォルトの名無しさん
2008/02/10(日) 14:53:010990デフォルトの名無しさん
2008/02/10(日) 15:10:560991デフォルトの名無しさん
2008/02/10(日) 15:15:09サンクス
0993デフォルトの名無しさん
2008/02/10(日) 15:20:16乙牌
0994デフォルトの名無しさん
2008/02/10(日) 15:29:52げいつのせいか
0995デフォルトの名無しさん
2008/02/10(日) 15:33:190996デフォルトの名無しさん
2008/02/10(日) 15:37:120997デフォルトの名無しさん
2008/02/10(日) 15:41:27テンソルのせい
0998デフォルトの名無しさん
2008/02/10(日) 15:44:33むしろMSには、OSの開発言語を刷新するような
モダンなDリスペクト言語を期待してたのになぁ。
0999デフォルトの名無しさん
2008/02/10(日) 15:46:071000デフォルトの名無しさん
2008/02/10(日) 15:46:2810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。