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


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

D言語 Part18



1 名前:デフォルトの名無しさん [2008/04/14(月) 15:16:22 ]
プログラミング言語 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フロントエンド)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF)
ttp://dsource.org/ (dsource)
ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語)
ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
ttp://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)
ttp://www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games)

■ IDE
ttp://dronten.googlepages.com/dscite (DSciTE)
ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks)
ttp://www.dprogramming.com/entice.php (Entice Designer)
ttp://www.dsource.org/projects/descent (Descent)
ttp://www.dsource.org/projects/poseidon (Poseidon)

577 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 22:25:48 ]
GWL_USER_DATAでぐぐったらこのスレが出た。
9時間弱しか経ってないのにgoogleすごいな

578 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 22:31:21 ]
最近のゴッゴル先生とか凄いよな…
足りない情報を探そうと思ったら〜というのを探してますっていう昨日の自分の書き込みがヒットしたり…

579 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 23:56:57 ]
2chで質問して反応がないので、後日検索すると
自分の質問が検索結果のTOPにでる悲しさ

580 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 04:32:39 ]
最近のゴッコル先生は2chのクローリング頻度をやたら上げてるからな
2chで質問してから2時間くらいで自分の質問が引っかかったことがある
しかし自分のブログは一切かからない

581 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 06:23:57 ]
更新頻度でクロール頻度も変えてたりするのかね

582 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 08:54:49 ]
switch〜case で break 書かなきゃ下に降りちゃうの?
こんなとこまでCを真似なくていいのに

583 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:08:02 ]
caseで複数条件に対して一つの処理にしたいときにできないと困るじゃない

584 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:40:12 ]
>>541見て心臓が痛くなったんだけど訴えたら勝てるかな

585 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:54:58 ]
すぐ下でびっくり系のブラクラって説明されてるのにクリックするなよ



586 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 10:17:15 ]
2ちゃんねる鉄の掟.

出されたご飯は残さず食べる。
転んでも泣かない。
おいら(ひろゆき)のギャグには大爆笑する。

587 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:46:30 ]
>>583
switch(n) {
case 1: ...
case 2,3: ...
case 4,5,6: ...
}
でいい

588 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:50:23 ]
そんなことよりもほかの言語との整合性が取れなくなって余計なヒューマンエラーが発生することのほうが問題。
って我らがうぉるたーたんのお達しだ。諦めておけ。

589 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:52:13 ]
まぁ、違う仕様にするならキーワードを case じゃなくて when にするとか
しないと混乱するしな。

590 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 13:54:04 ]
個人的にはswitch_breakみたいな名前でも欲しい
でも、無くてもそんなに困らないし、
そんなことよりライブラリをどうにか…

591 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 20:41:27 ]
case 0..10とかできないのかな。VBみたいだけど。

592 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:14:06 ]
いよいよ ... がほしくなる

593 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:23:22 ]
vbといったらcase is

594 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 01:54:49 ]
MPDさんのウィンドウは閉じないww

595 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 01:55:25 ]
誤爆すまぬ



596 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 03:47:38 ]
>584 はbreak; って書かれても fall thru しちゃういけない子

597 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 05:58:54 ]
switch (url) {
case ブラクラ:
if (res!=584) throw new bad_res;
}

こうですか?わかりま(ry

598 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 06:10:32 ]
res = 584;goto case ブラクラ;

599 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 10:50:14 ]
nullオブジェクトにアクセスしたときにAccess Violationになりますが、
このときにうまくスタックトレースを取る方法がありますでしょうか。
flectionedを使うと例外の場合のスタックトレースは取れたのですが……



600 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 16:43:35 ]
そこはddbgじゃねーかな

601 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:13:59 ]
関数内で定義したローカル変数のポインタを返しても大丈夫ですか?

int* Func(){
  int Num = 10;
  return &Num;
}

みたいにした場合にスコープを抜けてもアドレスは有効なのでしょうか。


602 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:22:57 ]
今年のD言語カンファレンスは、スピーカが集まらなかったので中止に
lists.puremagic.com/pipermail/digitalmars-d-announce/2008-July/009696.html

il|li orz il|li


603 名前:601 mailto:sage [2008/07/02(水) 17:45:01 ]
自己解決。
良いわけないですね。コンパイルエラーになりました。

604 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:49:37 ]
>>602
あらぁ…w

605 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 20:06:05 ]
東京でやってくれるなら喋りに行くのに。



606 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 20:37:56 ]
ネタがないっす

607 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 20:40:31 ]
英語ミリ

608 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 21:52:24 ]
>>602
え?どうせ行くつもりなかったけどいつ募集してたの?

609 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 21:57:19 ]
>>608
普通にずっとNGで募集してたと思うが。

610 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 21:56:38 ]
更新まだー?

611 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 01:03:37 ]
おまいらNGって何で読んでる?

612 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 02:46:14 ]
俺はfirefox

613 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 06:42:09 ]
thunderbirdで読んでる

614 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 16:28:12 ]
D2.0とphobosでeliminateなどで使用する叙述関数に
任意の引数を渡したいのですが、可能でしょうか?

void main(){
    const int Value = 3;
    int[] Nums = [1,2,3,4,5];
    Nums = eliminate!("a < Value")(Nums);
}

とか

void main(){
    const int Value = 10;
    int[] Nums = [1,2,3,4,5];
    static bool Func(int Src, int Value){
        return Src < Value;
    }
    Nums = eliminate!(Func(Value))(Nums);
}

のような事をやりたいのですが。

615 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 16:58:48 ]
D2.0のstd.streamって使えないんですかね
FileのreadLineをstringに渡そうと思ったら
Error: cannot implicitly convert expression (input.readLine()) of ty
pe char[] to invariant(char)[]
とかエラーがでるから困る

標準ストリームはdin,doutでいいんだけど
CFileを使うのは気が引ける。fopenとかいまさら使いたくないし



616 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 17:08:14 ]
時間ないから簡単に
前者はmixinで文字列生成
後者は
static bool Func(int Value)(int Src){return Src < Value;}
eliminate!(Func!(10))(Nums)
とか?
試してないから間違ってたらごめん

617 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 17:10:44 ]
ええい
mutable typeからinvariant typeへは明示的な変換が必要だからidup
string s = stream_.readLine().idup;

618 名前:615 mailto:sage [2008/07/04(金) 17:45:28 ]
>>617
っていうか標準ライブラリなんだからinvariant仕様に直しとけと言いたい
Fileをカプセル化した自前クラスで美味しくいただけそうです

619 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 21:35:03 ]
std.stringは全部をconst(char)[]にしてもらいたい
更新まだかなぁ・・・

620 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 23:50:07 ]
>>614
とりあえず成功する例
かっこ悪いのでbindとか関数リテラルがどのくらい効くのか教えていただけると助かります

const int Value = 3;
static bool func(int a) { return (a < Value); }

void main(){
        int[] Nums = [1,2,3,4,5];
        Nums = eliminate!(func)(Nums);
        writefln(Nums);
}

621 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 23:55:51 ]
>>616
後者は動きました。
>614のコードにはめると
eliminate!(Func!(Value))(Nums)
で動きますね

622 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:33:35 ]
Valueを用意する必要がないのでは?
あえて定数に名前を付けたいのなら enum Value = 3; をおすすめ

623 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:34:07 ]
あと std.bind はずっとぶっこわれ中

624 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 11:41:28 ]
lazyな引数を関数外部に持っていく方法あったら教えてくれ〜


625 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:46:31 ]
void delegate() dg;
void func(lazy void a) {
dg={return a;};
}

これでいけると思うんだがコンパイラが死ぬな。

void func(void delegate()[] a...);
でも使っとくといいと思う。



626 名前:614 [2008/07/06(日) 01:30:55 ]
すいません、説明不足でした。
というか提示した例が悪かったです。
比較したいValueは動的な値です。

const int Value = 3;

int Value = 3;
に置き換えた場合で考えて頂けますでしょうか。

C++でboost::lambdaを使った場合の

int Value = 3;
remove_if(Nums.begin(), Nums.end(), _1 < Value);

のようなことがやりたいのです。


627 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:47:05 ]
謎さんとこのstd.expressionとか。

628 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:49:21 ]
phobosのstd.algorithmはコンパイル時に決定してる関数しか受け付けないから不便だな。
とっとと、static引数導入してオーバーロードで関数ポインタとかも取れるように整理してほしいわ

629 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:06:20 ]
自分で書くしかなくね?
import std.stdio;
T[] removeIf(alias cond, T)(T[] arr) {
T[] ret;
foreach (i; arr)
if (cond(i))
ret ~= i;
return ret;
}
void main() {
auto less3 = (int i){return i < 3;};
static bool greator3(int i){return i > 3;};
int[] arr = [1,2,3,4,5];
writefln(removeIf!((int i){return i<4;})(arr));
writefln(removeIf!(less3)(arr));
writefln(removeIf!(greator3)(arr));
}

630 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:12:21 ]
closureあるから
int j = 3;
auto less = (int i){return i<j;};
これできるよ

631 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:26:59 ]
名前が付いてないとダメだってのは使い勝手が悪いな

632 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 08:29:38 ]
俺もそう思ってたが実は無名関数でもいけてる件

633 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 13:14:43 ]
>>632
コードplz

634 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 16:05:28 ]
>>629のこれのことなのだが
writefln(removeIf!((int i){return i<4;})(arr));
もしかしてphobosの話だろうか

635 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 17:20:20 ]
こないだのアップデートからリテラルのaliasも取れるようになったんだっけか。



636 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 19:50:48 ]
ああそれでか

637 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:17:26 ]
連想配列の clear ってどうやるですか?

638 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:33:51 ]
新しいのと取り替えればいいんじゃない?

639 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:03:14 ]
これでよくなかったっけ
int[int] a = [1:1];
writefln(a);
a = null;
writefln(a);

640 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:23:11 ]
それは空のと取り替えただけでクリアしたと言えるかは疑問だな。
もとのaの参照をどこかで持ってれば、そっちはクリアされないわけだし。

641 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:38:19 ]
foreach (key; aa.keys)
  aa.remove(key);
じゃダメ?

642 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 02:05:06 ]
2.016まだかよー

643 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:24:28 ]
>629
やりたかったのはまさにこれです。
ばっちりです。ありがとうございました。

644 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:47:40 ]
D言語の配列は参照型だとあるのですが、引数で渡す場合は確かにrefを
つけなくても参照で渡されているのですが、返値で返した場合って.dup
されたものが返されてしまうのでしょうか?

class CTest{
    int[] Nums;
    this(){
        Nums ~= 1;
        Nums ~= 2;
        Nums ~= 3;
    }
    int[] GetNums(){return Nums;}
}

void main(){
    CTest Test = new CTest;
    int[] Nums = Test.GetNums();
    Nums ~= 4;
}

でTest.Numsに4を追加したいのですが。

配列に限らずD言語で参照返しする場合ってどうやるのでしょうか。


645 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:22:17 ]
もうすぐTango 0.99.7リリース来そうですね。
twitter.com/larsivi/statuses/851357615




646 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:58:32 ]
>>644
Nums ~= 4; の直前と直後の配列のポインタを見てみるとわかるけど、インスタンスが変わっちゃってる。
# ということは、 ~= の演算子は配列のインスタンスに対する捜査ではなくて、配列のインスタンスを保存している変数に対する操作っていうこと…かな?
classの場合は普通に返せる。配列だけは操作するときにインスタンスが同じものになるかどうか注意しなきゃいけない。
# 配列の要素を増やす時は違うインスタンスになる場合があって、配列の要素を減らす場合にはインスタンスは変わらない。
tangoのArrayBagみたいなクラスでラップすると幸せになれるかもしれない。

647 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 15:09:35 ]
Core2DuoE6600の環境なんだけどstd.cpuid.amd64がtrue
笑っちゃった。俺の環境がおかしいのか?

648 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:06:54 ]
>646
試してみましたが自分の環境では ~= の前後ではアドレスは変わらなかったです。
そして引数で渡したときはアドレスが変わらず、返値で返した場合はアドレスが
変わっていました。

class CTest{
    int[] Nums;
    this(){
        Nums ~= 1;
        Nums ~= 2;
        Nums ~= 3;
    }
    int[]* GetpNums(){return &Nums;}
}

void main(){
    CTest Test = new CTest;
    int[]* pNums = Test.GetNums();
    *pNums ~= 4;
}

と配列のポインタを返すようにしたらできました。
ただ、これだとGCがちゃんと返した配列のポインタを追ってくれるのかが不安だったり。
うーん、いまいち配列の扱いがわからない。

やはりクラスでラップするのが安全なのかなぁ。

649 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:13:58 ]
たぶん勘違いしてる、というか俺の伝え方が悪かった。すまん。
配列のポインタは Nums.ptr これで得られる。
codepad.org/tvVXZGEx
↑を参考にするとわかると思う。
# ちなみに、容量をリザーブしておくとインスタンスが変わらない。
# コメントアウトをはずすと同じポインタになる。

650 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:26:26 ]
>>648
codepadの環境では、前後でアドレスは変わった。
codepad.org/Mxf3ifJm
> Test.Nums: [401C3FB0]
> main.Nums(before): [401C3FB0]
> main.Nums(after): [401C2F80]

一応、仕様では「配列の連結は、 片方が長さ 0 の配列であっても必ずコピーを伴います」
だそうなので、Nums ~= 4; でローカルのNumsアドレスが新しい配列のものになるのが正常だと思う。
(つまり、参照先の配列インスタンス自体を連結演算によって変更するのは無理ってこと)

一個のメンバ変数を対象として変更する場合はメンバ変数への参照(ポインタ)を返してやればいいけど、
それだとTest.Numsの指す配列が他の変数によって参照されてたりするとやっかいな問題になると思う。

651 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:50:42 ]
>>647
AMD64とEM64Tってほぼ互換じゃなかったっけ

652 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:53:20 ]
>>649
> # ちなみに、容量をリザーブしておくとインスタンスが変わらない。
> # コメントアウトをはずすと同じポインタになる。
ホントだ。

Nums ~= 4; を Nums = Nums~4; とすると、アドレスが変わるようになる。
codepad.org/WetmPBdy

アドレスが変わらない場合も、Test.Numsの長さが自動的に延びるわけじゃなくて、
スライスみたいなことになってるみたいだ。(Test.Numsには4は追加されない)
codepad.org/cWJnruXE

こういう仕様なのかバグなのか。実装を考えればこの挙動は自然だけど……

653 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 17:19:30 ]
>>651
俺の無知か。スマソ

654 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 17:58:19 ]
lengthを増やすとアドレスが変わってしまいますね。
そしてリザーブしてもアドレスは変わらないが、追加されたメンバが
更新されないと……

codepad.org/Kg0yzNfz
みたいに引数にリファレンスで渡した場合は追加されるので、それと
同じ事が返値でもできればいいのですが。
C++のように返値のリファレンス指定でできないんですねぇ。

655 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 18:29:01 ]
std.xml、マニュアルにあるサンプルプログラムちゃんと動く?
どうしてもうまく動かない・・・
2.0.15です



656 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 18:50:59 ]
前に誰かがstd.xmlが動かなくなったって言ってたような・・・
trunk版でも無理なのだろうか

657 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 19:23:54 ]
>>654
>C++のように返値のリファレンス指定
俺もこれほしいかも
というか、参照とかポインタとかはC++のほうがわかりやすくて好きだ…

658 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:43:38 ]
(関数ポインタを除く)

659 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:57:05 ]
>>645
linux環境だと、Theadクラス使うと落ちまくってとても使えたものじゃないのだが、
いつになったら直るのだろうか・・・

660 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 13:22:48 ]
>>645
ん、まさか tnago に DBI でもマージするつもりなのか…
アレの SQLite バインディングは動かないコードのまま trunk に放置されてるからなぁ…

661 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:02:39 ]
>>645
じゃあ、0.99.7に移行する前に破壊的変更の予習。
www.dsource.org/projects/tango/wiki/0_99_7_BreakingChanges
今回多いなw

662 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 01:17:41 ]
>>661
>tango.io: The use of FilePath and PathView in FileConduit is deprecated in favour of char[] paths
>tango.text.xml.XmlPrinter: Deprecated in favor of DocPrinter
>tango.group: Deprecation period expired, so will be removed.
ここら辺はかなり厳しそうだな。

663 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 02:17:16 ]
phobosのtrunkが大量に更新されてる件

664 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 02:24:07 ]
あ、やべぇ、なんかTangoのD2.0のマージ来た…!?
www.dsource.org/projects/tango/browser/branches/experimental/D2.0

665 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:23:46 ]
暴走するのはPhobosだけにしてくれよ…



666 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:34:05 ]
これはDコミュニティの文化だよ

667 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 04:46:53 ]
>>664 キタ━(゚∀゚)━!!

668 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 11:04:08 ]
PhobosとTangoがなかよくなりますように・・・

669 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 18:53:28 ]
2.016もきた

- re-implemented internal.monitor in D. Rationalized internal.object
- Bugzilla 288: changed return type of opEquals from int to bool. ***This necessitates doing a grep for opEquals and changing all the return values.***
- Added .__vptr and .__monitor properties for class objects for use in the internal runtime library.
- Made rdmd's source available through svn, see dsource.org/projects/phobos/browser/trunk/tools/rdmd.d
- Simplified std.algorithm by fusing together higher-order functions taking an alias and their counterparts taking a string
-Added module std.array containing array operations: insert, erase, and replace
-Changed the enforce's implementation to generate smaller code per call
-Changed std.functional.binaryFun to work with strings and function aliases alike
-In std.getopt, added optChar, assignChar, and endOfOptions, per popular demand :o|
-In std.math, replaced a bunch of consts with enums
-In std.numeric, added Don Clugston as author and operated minor documentation fixes
-Improved std.stdio.chunks to take an iteration tally in addition to the chunk

また、すごい変更がw



670 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 19:16:19 ]
大して大きくないような。.__vptrと.__monitorは今まで無かったのが(ry
それより修正して欲しかったバグの修正ktkr

671 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:07:24 ]
よくわからん・・・誰か要点を・・・

672 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:05:19 ]
>>671
opEqualsの戻り値型が変わったことぐらいだろ。

673 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 12:38:58 ]
stringzとかいう型出来ないかな

文字列が入ると最後に'\0'を埋めてくれて
writeflnなどD用の時は'\0'を無視、
C用の時は'\0'を使えるという感じに
もしくはC用の関数内では最後に'\0'が付加されるというような

toStringzで事足りるんだけどな

674 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:34:06 ]
>>673
リンケージによって文字列の内部構造が変化するのは便利かもだけど怖い

675 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 20:38:11 ]
opEqualsとうとうboolになったのか。
パフォーマンスが云々うぉるたんが抵抗してたのは解決したんかな。

しかしTangoはどうあってもモジュール名のUpperCamelを止める気はないのだろうか。



676 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:39:03 ]
>>675
いまさら変えられても混乱するしこのままでいいかなって最近思ってきた。

677 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:49:20 ]
opAssign定義した構造体の連想配列に新しく要素を格納しようとすると落ちるのは何でなんだぜ?






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

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

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