[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/05 11:17 / Filesize : 219 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part15



1 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:16:30 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://www.sun-inet.or.jp/~yaneurao/dlang/
ttp://wisdom.sakura.ne.jp/programming/d/

477 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:09:13 ]
Cygwin は使ってないけど、Windows + dmd1.022 + phobos で普通に動いてるけどねぇ。
Cygwin か dsss が何か悪さしてんじゃない?


478 名前:デフォルトの名無しさん [2007/10/29(月) 22:30:45 ]
>>477
あ。たぶんdsssのような気がしてきました。

おそらくdsssは、
import文を見てコンパイルするファイルを特定していってるんだけど、
そのときにstatic ifをうまく解析できてないのかもしれません。

[わなD]に
「DSSSは、static ifで条件importしている依存関係の解析が
 甘くて時々不便だったりするので…」
という記述があったので、これのことなのかも。


479 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:41:27 ]
Derelict は dmd 2.0 だとビルドできないのか?

480 名前:デフォルトの名無しさん [2007/10/29(月) 22:52:37 ]
>>479
dsss net install derelictsdl

コンパイラをdmd 2.006にして上記のコマンドを実行したら、
たしかにコンパイルエラーが出ました。

include\d\derelict\util\loader.di(223):
Error: cannot implicitly convert expression ("") of type invariant char[0u] to char[]

たぶん文字列をキャストすりゃいいんだろうけど、
全部キャストするのはヤだなー。

www.dsource.org/forums/viewtopic.php?t=2903&sid=c9657f55c4f87d635f986ebfc3bb79bf

検索してみたら上記のリンク先でそれっぽい話題が交わされているようですが、
私は英語が読めないのでよくわからんかったです。


481 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:04:18 ]
k.inabaさんがdsssはstatic if内でのimportの解析が甘い的なこと書いてた気がする
わなDかな

482 名前:デフォルトの名無しさん [2007/10/30(火) 00:45:01 ]
dmd 2.0系での derelict のコンパイルとインストール、うまくいきました。

[わなD]D 2.x と D 1.x
www.kmonos.net/alang/wnd/topics/d2-d1.ja.html

上記のページを参考にして、char[]をstringに、
dupをidupに修正してコンパイルしたらうまいくいきました。


483 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 01:43:53 ]
おお
わなD更新されてるじゃまいか
どっかで更新されたかどうか告知あったりしないのかな
RSS配信とか

484 名前:デフォルトの名無しさん [2007/10/30(火) 02:19:27 ]
class Foo{}

class Bar
{
 private const( Foo ) mFoo;

 const( Foo ) getFoo()
 {
  return mFoo;
 }

 void setFoo( const( Foo ) iFoo )
 {
  mFoo = iFoo;
 }
}

みたいなことをD言語2.xでしたいのですが、
Bar.setFoo()の中でコンパイルエラーが発生してしまいます。

たぶんメンバ変数Bar.mFooの定義方法がよくないと思うのですが、
どうするとよいでしょうか?


485 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 03:05:51 ]
どうするんだろ
うまくいかないや
こんなんになりました

class Foo{}

class Bar
{
 private const(Foo)* mFoo;
 const(Foo) getFoo()
 {
  return *mFoo;
 }
 void setFoo(const(Foo) iFoo)
 {
  mFoo = &iFoo;
 }
}

void main()
{
 auto bar = new Bar;
 bar.setFoo(new Foo);
 const(Foo) foo = bar.getFoo();
}




486 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 03:42:21 ]
const Foo mFoo; なら変数mFoo自体がconstだけど、
const(Foo) mFoo; なら変数mFoo自体は書き換え可能なはずだよね。
メンバ変数のときだけ動作が違う、ってんだからバグじゃね?

487 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 04:30:53 ]
俺もバグなんじゃないかと思う。
とりあえずaliasでごまかしてみるとうまくいくようです。

class Foo{}
class Bar
{
 alias const( Foo ) Foo_const;
 private Foo_const mFoo;
 Foo_const getFoo()
 {
  return mFoo;
 }
 void setFoo( Foo_const iFoo )
 {
  mFoo = iFoo;
 }
}
// 意味のないエイリアス
// この手のものは…どうなんですか、ウォルターたん…

488 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 05:49:36 ]
aliasした場合、今度はconst消えちゃってね?

489 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:03:50 ]
>>482
> 2007/10/30 :: RSSはじめました
ました

490 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:04:56 ]
間違えた>>483

491 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:57:38 ]
助かります

492 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 14:25:54 ]
わなDの"../表紙に戻る"って戻れないよね

493 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 14:59:37 ]
>>488
ほんとだ。constがきえてるっぽい。これもバグなのかな。
まぁconst/invariant周りのバグは多すぎて報告する気にもならんけど。

494 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:06:32 ]
v1からv2に乗り換えたら連想配列でキー引けないんだけど、なんか変わった?

495 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 17:11:50 ]
>>494
エスパーしてみると、文字列リテラルの型がinvariant(char)[]になった。



496 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 17:58:36 ]
int[char[]] foo = [ "hoge" : 1, "hage" : 2 ];
if(auto p = ("hoge" in foo))
writefln(*p);
else
writefln("ねーよ");
try {
writefln(foo["hage"]);
}
catch(ArrayBoundsError) {
writefln("ねーよ");
}
v2でどー書くの?

497 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 18:13:36 ]
// dmd 2.006
void main(){
int[string] foo = [ "hoge" : 1, "hage" : 2 ];
foreach(k; foo.keys)
writeln(k, foo[k]); // Error: ArrayBoundsError
}

おそらくバグだな

498 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 18:16:44 ]
void main(){
int[string] foo;
foo["hoge"] = 1; foo["hage"] = 2;
foreach(k; foo.keys)
writeln(k, foo[k]);
}

こうすればいけるな。

499 名前:デフォルトの名無しさん [2007/10/30(火) 21:23:48 ]
>>484
>>486

クラスのメンバ変数にconstオブジェクトを持たせると挙動がおかしいのは、
下記のページにあるバグ報告と同じっぽいですね。
d.puremagic.com/issues/show_bug.cgi?id=1376


500 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:06:21 ]
分かっちゃいるけど直ってない、という話なのね

501 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 03:07:11 ]
D2不安すぎる

502 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 10:19:11 ]
D2.0で作成したソフトウェア納品してしまった件wwww
ソースじゃなく、バイナリだけだけど

503 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 10:34:24 ]
>>502
おぉおおぉおおそろしいことを…!
でもよくやった!

504 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 11:22:19 ]
Makefileで依存関係しらべてビルドするより、
dmd.exeでどかっとコンパイルしたほうが速いんだね・・

>>502
ちょwww

505 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 13:49:37 ]
>>501
Doctor2年でつか

>>502
どこの会社だよそれwwwww
せめて1.0にしろよwwwww
後で致命的なバグ見つかってもしらねーぞwwww



506 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 14:05:32 ]
>>502
国内初の実用事例キタコレwwwww

507 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 14:22:55 ]
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ...   --─-  :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡::::   //[||    」  ||]  ::::::::::゜:::::::::: ...:: :::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..::::
:.... .... .. .     く  /    _三502三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ無茶しやがって… ..........
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ................... .. . ...
..   三  |   三  |   三  |   三 |  ... ............. ........... . .....
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪ ............. ............. .. ........ ...
  三三  三三  三三   三三
 三三  三三  三三   三三

508 名前:502 mailto:sage [2007/10/31(水) 17:40:02 ]
反応が結構あったのにびびったw
リアルタイム映像系で、DとDirectX10と絡めた。
やっぱりネックはGCだけど、評判が悪いがscopeとかつかうとわりと回避できるよ。
それでもメモリ使用のグラフををみると
/|/|/|/|/|
こんな感じでノコギリみたいになる。
そこ以外はサクサク開発できた。
まぁなんだ、D言語最高

509 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 18:05:54 ]
>>502
ところで
ttp://hp.vector.co.jp/authors/VA031566/d_direct3d9/index.html
が古くなってるからDirectX10周りを公開してくれたら助かる人がいるんじゃないかな
仕事で書いたコードだから無理かなと思うのであんまり期待せずに言っておくw

納品して利益が発生するものに使う機会はまだないが
社内向けのなら俺もD使ってる

510 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 18:51:09 ]
D2とVistaって・・・
どんだけばk・・・いや、いい意味でなw乙w

511 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 19:00:32 ]
>>508
確かに集合型とか一時オブジェクトを扱うとC++よりDが圧倒的に楽なんだよなあ。
DX10を絡めたのは尊敬する。俺はやろうとして挫折してます。

512 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 20:23:41 ]
>>502
ノウハウうpしてくれると俺が鼻水100ccほど垂らしながらよろこびます

513 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 20:26:52 ]
俺も0xD2ccくらい垂らしながらよろこびます

514 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 21:01:36 ]
>>508
本当に勇者だなお前は
お前みたいな勇者のおかげで俺たち一般PGが最新技術に触れる日が早まる

515 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 21:03:15 ]
DirectX 捨てて OpenGL にいった自分も少しよろこびます。



516 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 21:44:52 ]
>>502==508の人気に嫉妬

517 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 22:14:53 ]
映像系で思い出したが、dSFMTをクラス化してインスタンスごとに独立した系列がいけるようにチョコチョコいじってるのだが、
SIMD部分をどうするかでかなり悩む

518 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 22:19:27 ]
finallyよりもscope(exit)のがつかいやすい

519 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:12:07 ]
しかしふとだいぶ前ーのスレで
「C++よりいい感じだぜー」って研究室でデータ計算だかに
使ってるって言う人も見たなぁ、という記憶が。
まぁ「納品」という言葉が出てくると俺ビビらずにはいられんけどw

ところで興味本位でメインマシンを64bitなubuntuにしてみたら
いろんな32bitライブラリがネーヨとリンカに言われ俺涙目。
dmdもamd64吐けるようにぷっりーずぅぅぅー。

520 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:32:21 ]
>>519
sudo apt-get install lib32gcc1
してリンカフラグ弄ればいいとおも

521 名前:502 mailto:sage [2007/11/01(木) 07:05:47 ]
DirectX10ヘッダーファイルをDにポーティングしていれば、一番みんなが使いやすいんだろうと思うんだけど
C++でまずDirectX10をラップしてそれをDで使用するようにしました。
DirectX10.1とかでるし、dxgi.h、d3d10.h、d3dx10.hがころころ変わると思ったので。
以下スレチにならない程度にさわりを・・・
/* C++ */
class Device {
public:
 _cptr<ID3D10Device> _cp; // _cpt<T>rはCOMをあつかうスマートポインタ
};
class Swapchain {
public:
 uint32 _width, _height;
 _cptr<IDXGISwapChain> _cp;
 int init( Device &dev, const DXGI_SWAP_CHAIN_DESC &ds);
};
class Buffer {
public:
 _cptr<ID3D10Buffer> _cp;
};
とこんな風にまんま包み込んで、
Dに以下の様な関数をエキスポート
Device * dx10g0_Device_new();
void dx10_Device_delete(Device *pthis);
int dx10_Device_init(Device *pthis, void *pdevicesettings);
int dx10_Device_DrawPrimitive(Device *pthis, uint type, uint n);
int dx10_Device_DrawIndexedPrimitive(Device *pthis, uint type, uint indexcount);
中の関数はDirectX10APIより少々便利めにつくるようにしてます。
こうすることのメリットは、上でいったヘッダーファイルがかわっても(少しは)大丈夫なこと、
DirectX9に同様のものをつくることで、D側からはDirectX10、DirectX9が同じように扱えること。
Shader4.0をつかってしまったら、意味がないかもだけど・・・

522 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 13:14:21 ]
>>520
情報有難う御座いまするー。
そうかー32bit系はそういうパッケージ名を与えられているのですね。
lib32gcc1は入ってました。中身の.soから、Winでいうインポートライブラリが生成できればいいんでしょか。
ともあれこれ以上は自力でごにょごにょとやってみます。

523 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:10:15 ]
>>521
なるほど。
俺は、汚いヘッダファイルからではなく、比較的綺麗なIDLからDにポーティングしようとして挫折。
.diを吐くIDLコンパイラ欲しい、、、

524 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:26:30 ]
「無いならば 作ってしまおう プログラマ」 詠み人知らず

525 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:46:12 ]
>>521
ありがとうございます。参考になります。
まあDから読みやすいようにするのがいい解ということですかねえ。



526 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:22:34 ]
win32のBitBltがどこにあるかわかりませんか?v1.015@Phobosです。
リンカのLibにはあるっぽいんですけど、
export BOOL BitBlt(HDC,int,int,int,int,HDC,int,int,DWORD);
しても認識しません。。。

527 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:33:18 ]
extern(Windows)

528 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:35:31 ]
すいません!出来ました。しょーもない質問で申し訳ない。
ありがと〜。

529 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 02:36:37 ]
win32.windows 使わないの?

530 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 02:44:05 ]
なるべく標準で済ませたかったんです。
はやく標準でとりこんでくれないかなぁ。。。

531 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 03:58:22 ]
意味無いけどあるある

532 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:48:20 ]
チラ裏!

今丁度はまってた事。
クラスを宣言してC++と同じ要領で使おうとしたら、宣言自体は参照のためにアクセス違反の例外が飛んだ。ってか飛びまくった。
つまり、newしてなかった。あ〜、何事かとおもったわ。(TT

533 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:11:20 ]
構造体・クラスをみわけるために
なんかプレフィックスつけてる?

534 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:14:08 ]
いや、そういう習慣は持ってないね。
それがさ、うっかりスタックに確保されるもんだと勘違いしてたんだ。
C++だと基本的に自分でメモリ確保しないようにやってたから。。。

535 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:23:28 ]
//C++
Class hoge;
//D
scope hoge = new Class;



536 名前:533 mailto:sage [2007/11/02(金) 08:26:58 ]
いや、べつに532にきいたわけじゃないんだ。
みんなはどうしてるかなと思って。

俺は構造体にはSをつけて、クラスにはなんもなし。

537 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:30:01 ]
ああ、結局newしないといけないんだなぁ。
なるほど、なるほど。

new恐怖症なもんでね。
だから、GC万歳ってかんじなんだけどね。

538 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:36:49 ]
乳は決して怖くない。勇気を持ってください。

539 名前:532 mailto:sage [2007/11/02(金) 08:41:34 ]
>>536
俺は特にプレフィックスはつけない。何にでも。
でも、命名規則は割りと変数の使用イメージにそってつけてるかなぁ。
まぁ、しばらくすると、わすれちゃうんだけどね。。。XP

>>538
勇者はD言語を手に入れた。LvUP!!new恐怖症が多少和らいだ。deleteを忘れた。




徹夜しちゃったからそろそろ寝るかなぁ。
今作ってるの、もうちょっとで完成するんだけどねぇ。あえて寝る!
そんじゃまた〜。

540 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:44:07 ]
そういえば`「わすれる」を覚える`って不思議な響きだよな・・・

541 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:48:51 ]
(a, b) = (c, d);みたいなのが
a = c;
b = d;
に変換されるようなやつってD言語にある?

542 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 10:36:20 ]
>>541
無くは無い。tuple。

543 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 16:22:56 ]
関数からタプル返せるようになるのまだー?

544 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 16:34:29 ]
それよりもタプルリテラル欲しい。

545 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:09:21 ]
質問です。
v1.015なんですけど、以下のコードが変なエラー吐いて止まっちゃうんです。
Error: non-constant expression new stack_t(true)

これって、グローバル変数に直にnewすることってできないんですか?

private import Stack;//自作のstack_t(T)。引数はboolのみ。

struct dummy{
    int x,y;
}
alias stack_t!(dummy) stack;
auto st =new stack; 
int main(char[][]){
    static dummy d={10,20};
    
    st.push(d);
    
    return 0;
}



546 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:41:50 ]
そういう場合は static this() を使う。

private import Stack;//自作のstack_t(T)。引数はboolのみ。

struct dummy{
int x,y;
}
alias stack_t!(dummy) stack;

stack st;

static this(){
st=new stack
}

int main(char[][]){
static dummy d={10,20};

st.push(d);

return 0;
}


547 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 19:03:56 ]
あぁ、なるほど。
わかりました〜。レスありがとう。

548 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 19:51:37 ]
static thisってクラス外でも使えたのか……知ってればもっときれいに書けたのあったなあ……

クラス内enumの仕様が悩ましい。

class Foo {
enum FooEnum {}
}
enum GlobalEnum {}

class BarA(T : FooEnum){} // NG
class BarB(T : GlobalEnum){} // OK
class BarC { // OK
FooEnum t;
}

BarAが宣言したいのだがなんとしたものか。

549 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 19:56:02 ]
>>548
class BarA(T : Foo.FooEnum){}

550 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 20:09:31 ]
Foo.FooEnum t;

551 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 20:28:04 ]
digitalmars.com 繋がる?

552 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 20:46:56 ]
>>549-550
すんません間違えました……でも両方とも
class Foo is forward referenced when looking for 'FooEnum'
でコンパイルエラーとなるという。

シンボルの意味が定義される順番が

A群
Foo, GlobalEnum, BarX(とテンプレート引数)

B群
Fooの内部、BarCの内部……

というふうになっているからかな、とは思うのですが。

553 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 22:11:25 ]
>>551
つながらない。

554 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 00:20:56 ]
>>552
そこら辺、実装が微妙だよな。
内部関数も前方参照できないと使えないし。

555 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 09:15:56 ]
What's New for D 2.007
Oct 31, 2007
New/Changed Features

    * Functors now supported by std.traits.ReturnType().
    * Transitive const now leaves invariants intact in the tail.
    * Added overloadable unary * operation as opStar().
    * Full closure support added.
    * Data items in static data segment >= 16 bytes in size are now paragraph aligned.



556 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 09:17:01 ]
貼ってから気づいたけれどフルクロージャーサポートかっ!

557 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 09:26:28 ]
2行目の意味誰かkwsk!

558 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 09:54:04 ]
opStar・・・・・・これでboost::spiritが移植可能かも!

いやあんまり要らん気がするが

559 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 09:59:50 ]
writefに("日本語")としたらinvalid UTF-8 sequenceとでてコンパイルできないんですが
どうしたらコンパイルできるんでしょうか。

560 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 10:08:29 ]
ソース自体をUTF-8かUTF-16で保存してください。

561 名前:559 mailto:sage [2007/11/03(土) 10:23:38 ]
>>560
UTF-16は選べなかったので、UTF-8で保存したらできました。ありがとうございます。
ただUTF-8なので??となりました。

562 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 10:27:12 ]
今更だがSharpDevelopいいな

563 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 11:15:20 ]
>>561
今のところ、Windows上で出力内容を化けさせずに見たい場合は

1、テキストファイルに出力して確認
2、printfでUTF-16を使う

のどちらかじゃないですかね。コンソールでCHCP 65001とかやる手もありますが、
これだとなんか表示がおかしくなる上にコンソールのサイズが強制的に変更されるので使いづらいです。

2の方法の場合、下のようにするとうまくいきます。

//↓こんな感じ
import std.c.locale;

void main() {
setlocale(0,"jp.932");
printf("%.*ls\n","日本語"w);
}

ただこれ日本語版のWindows環境以外について全く考慮してないプログラムになるんで、
もう一工夫した方が良いと思います。単なるテストプログラムと割り切ってるなら
そんなん考えないでも良いと思いますけど。

564 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 11:28:43 ]
Internal error: ../ztc/cgcod.c 1031

565 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 12:14:15 ]
* Full closure support added.

とうとうきたのか!?



566 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:47:29 ]
ヘルプのtemplateのサンプルの Curry をこんな感じで書き換えたらアブノーマルエラーで落ちるんだけれど、これ何処か間違ってます?
windows2kでdmd 2.007なのだけれど・・・

R delegate(U) Curry(R, A, U...)(R delegate(A, U) dg, A arg) {
    return (U u) { return dg(arg, u); };
}

567 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:49:57 ]
>>565
D\(^o^)/ハジマタ

import std.stdio;

uint delegate() counter() {
uint i = 0;
return {return ++i;};
}

void main() {
auto c = counter();
writeln(c()); // 1
writeln(c()); // 2
writeln(c()); // 3
}

568 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:53:57 ]
>>566
構文的には間違ってないと思うから、
まだバグ餅と考えたほうがいいかもね。

569 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:56:50 ]
>>565
ttp://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=61016


570 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 14:02:32 ]
これのGCってstop the world?
それともなにがしかのコンカレントGC?


571 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 15:27:05 ]
おークロージャキタ━(゚∀゚)━!!

572 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 16:24:31 ]
これはハジマッテルなwwwwwwww
やべえwwww

573 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 16:25:47 ]
クロージャってどういうときつかうの?
ネストした関数なら使うことあるけど。

574 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 16:25:56 ]
いよいよ2.0に挑戦するときが来たか……。
といいつつもクロージャがサポートされるとなにが嬉しいのかよくわからない俺。

575 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 16:27:31 ]
ごめん被ったw



576 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 16:32:50 ]
wktk

577 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 16:35:25 ]
DってなんかSchemeっぽくね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<219KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef