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


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

D言語 Part17



1 名前:デフォルトの名無しさん [2008/02/10(日) 15:06:12 ]
プログラミング言語 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://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動画)

■ 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)

706 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:59:57 ]
タスクマネージャのプロセス一覧で見えるメモリ消費量は、
そのプロセスが使ってるメモリ領域を正確に表示した物じゃないらしいので、
freeしたら即減るかっつーとそう言うもんでもないようです。

あとDのメモリ管理ってメモリプールみたいな感じで一度メモリ領域拡張されると縮小されにくい物なんじゃ?

707 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:05:52 ]
>>704
www2s.biglobe.ne.jp/~hig/q_a/Programing_QA02.html#Q4

708 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:11:25 ]
なあんだ、結局Dのnew&deleteとほぼ同じかもしれないってことかー

709 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:10:28 ]
>707
ほぉ〜勉強になったさんくす

710 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 07:31:22 ]
>>706
VCのclやgccだとfreeですぐに減ってるので、多分2段落目のとおりだと思う。
これも実装の違いなんだろう。

結局、Cみたいにある程度管理しながらうまいことメモリを使わないといけないのは変わらないわけかな。

711 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 09:18:41 ]
ガベージコレクタのおかげで、うっかりdelete忘れてプロセス起動中に延々と
メモリを圧迫し続ける心配がないっていう程度ですかねえ。


712 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 09:50:29 ]
基本的にはDでメモリをOSには返せないってこと?
VC++だかgccだかでDLL作ってそっちのmalloc/free使えばいいのか。

713 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 10:00:05 ]
自前でHeapAllocすればいいんじゃ

714 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:26:29 ]
返還する目処のある処理を別プロセスにすりゃいいんじゃ?
すりゃいいってほど簡単じゃないけど。



715 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:16:30 ]
プロセスにオブジェクトを渡してオブジェクトを受け取る、とか出来ないから
モジュール化がだいぶしょぼくなるな。

出来ればいいのになー。.NET環境だとそういうのもあるのになー。
OSはメモリもオブジェクトのメタデータも管理しちゃえばいいのに。

716 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:35:02 ]
tangoにシリアライザなかったっけ。

717 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 22:37:26 ]
>>715
モジュールをDLLとして作れば、Dのオブジェクトを渡したり
GCをプロセス間で共有したりできるみたいよ。

718 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:13:25 ]
マイクロソフトD言語潰す宣言
「既存のD言語のライセンスはもちろん買収するつもりだ」――CEO会長坂田雄太
an.to/?microsoft01news

719 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:18:29 ]
>>718
Fxで開いたらrundll32.exe url.dll,TelnetProtocolHandlerとか出てきたが何をするつもりなんだ。

720 名前:デフォルトの名無しさん [2008/03/14(金) 10:22:03 ]
>>718
正確に「潰す」とは言ってないんだろ?
だったら問題ないと思うが

721 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:33:20 ]
ブラクラです

722 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:35:46 ]
別にE言語になってもイーっすよ

723 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:24:11 ]
Dって元々Mars言語って名前だったのを、
をるたんの友人がD言語って言い張るもんでいつの間にかDになったんじゃなかったっけ。
MSに名前押さえられても元のMars言語って名乗れば問題ないよね。

724 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:32:39 ]
>723
マスコットキャラかわいそう・・・・・・



725 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:45:40 ]
>>724
あんなゴキブリみたいな顔してるムカつくマスコットなんだから
どこか別の場所に生きる術を見出せるさ。

726 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:54:18 ]
>in パラメタ記憶域クラスを scope const の意味としました
あれ、finalは・・・

727 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:17:30 ]
finalはみんなの心の中で生き続けるよ

728 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:58:12 ]
むしろ「かぶっちゃったけどどうしてもこの名前使いたい」って言って
MSがお金払ってくれたら棚ぼたなのにw

729 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:05:36 ]
>>728
最初からそれ狙いでしょ。
つーか、世の中にD言語って、このD言語以前からも色々あるわけだが。

730 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:27:27 ]
なるほど、D言語と名づけたのは金狙いか
思惑通りMSが金払ってくれるのは、むしろいいことじゃあないか
めでたしめでたし

731 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:57:12 ]
??????????

732 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 16:05:10 ]
このスレもやたらレベルがさがったな

733 名前:デフォルトの名無しさん [2008/03/14(金) 16:12:38 ]
だってD言語だもんな

734 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 16:36:42 ]
なんかマイクロソフトの"D言語"の話題を何回も蒸し返したがる子がいるのね。



735 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:08:00 ]
MSにあのマスコットキャラ売っちゃえばいいんじゃね?

736 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:36:28 ]
MSならきっと立派に育ててくれる

737 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:53:46 ]
マイクロソフトに期待してる人が結構いるんだね
Linux使ってる俺にとってはどうでもいい話だが

738 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:12:14 ]
M$ が主導しても自分では Windows でしかコンパイラ作らないんだろ?
価値ないよ。

739 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:13:53 ]
そろそろxamlでDFLフォームを作るコンバータをだな

740 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:23:43 ]
WPFのDバインディングとかは使ってみたいよね。

Dから.NETのリフレクション機能をさわるのはできたけど、
CLRのGCとDのGCを上手いこと動かしてリークを防ぐのがめんどい。

741 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:28:30 ]
Iron DなのかD.NETなのかD#なのかが問題だ。

742 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:38:43 ]
どうでもいい

743 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:08:43 ]
D.NET はもうある(正確にはあった)

744 名前:デフォルトの名無しさん [2008/03/14(金) 22:23:18 ]
静的に文字列を置換する方法てないですかね

const string foo = "pal = 5;";

class Hoge{
int val;
void DoSomething(){
const string myfoo = static_replace(foo,"p","v");// <-こんなかんじ
mixin(myfoo); // val = 5; に展開して欲しい
}
}



745 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:24:55 ]
F#はもうある。

746 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:33:36 ]
>>737、向こうで噴いた
200 :login:Penguin :sage :2008/03/14(金) 18:53:16 ID:mDbK1QBH
マイクロソフトに期待してる人が結構いるんだね
Linux使ってる俺にとってはどうでもいい話だが

201 :login:Penguin :sage :2008/03/14(金) 18:54:22 ID:mDbK1QBH
↑誤爆


747 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:34:00 ]
>>744
ないんだったら作ればいいんだ。
string static_replace(string text,string from,string to){
    string result;
    while(text.length >= from.length){
        if(text[0..from.length] == from){
            result ~= to;
            text = text[from.length .. $];
        }else{
            result ~= text[0];
            text = text[1..$];
        }
    }
    return result ~ text;
}
あと、const string myfooだとなぜかdmd君は落ちやがったのでstatic付けてみた
const static string myfoo = static_replace(foo,"p","v");


748 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:37:42 ]
CTFEあるからstd.string.replaceでイケるっぽくない?

749 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:45:26 ]
>>748
残念ながらstd.string.replace君の中のstd.string.findはCTFEで対応していない機能(memchrとか)を使ってるんだよね。

個人的にはversion(compileTime)相当のものを処理系が用意するなりなんなりで、
std.stringとかはCTFE時にも動作するように作り直してほしいなあとか思ってたり。

750 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:49:40 ]
pure関数はCTFEされるとかいう風になると思うんだがどうだろう

751 名前:744 mailto:sage [2008/03/14(金) 22:50:11 ]
>>747
>>748
>>749
ありがとうございます
CTFE・・ 初めて聞く単語だ(実はD言語習いたて)
ググってきます

家の環境にはD言語入れてないのでこれからインスコして試してみます

752 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:01:48 ]
CTFE の条件てどこにかいてありますか?

753 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:05:39 ]
>>752
ソース

754 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:19:52 ]
ttp://www.kmonos.net/alang/d/2.0/function.html#interpretation



755 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:32:52 ]
>>754
サンクス!

756 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:23:30 ]
CTFEでwithが使えないってのはどういう理由なんだろう

757 名前:737 mailto:sage [2008/03/15(土) 00:35:21 ]
>>746
ヽ( ・∀・)人(・∀・ )ノナカーマ

758 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 04:08:08 ]
>>756
シンボルの検索は兎も角として、ポインタ使えないのにwithが使えてどうするという気が。

759 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 04:16:15 ]
多くのメンバを持つ構造体にアクセスするときとか、
with(std.stdio)みたいに普段は使わないモジュールを導入するとか
便利だと思うんだけどなあ。

withとポインタが使えないことに何の関係があるのかはよくわからない。

760 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:24:57 ]
MacOSX 10.5 Leoprad でD言語の環境をそろえようと思って
sudo port install gdc
して、簡単な HELLO WORLD つくって test.d で保存して
gdc test.d
したんだけど object.d が見つからんと言われたので、ひとまずインポートパスを指定して

gdc -I "/opt/local/include/d/4.1.2" test.d

ってやったら、

ld: file not found: crt.o

てエラーが出たんだが。。。これってリンカエラーだよね。
crt3.o ってファイルは dmc 関係のフォルダでいくつか見つかったんだけど、
どこでパスを指定するの?

というか、gdc のリンカに dmc のオブジェクトファイル渡してもいいのかな??



761 名前:760 mailto:sage [2008/03/15(土) 17:26:03 ]
いや、よく見たら gcc のフォルダにも crt3.o がありました

762 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:36:01 ]
file not found: crt.o
なのになんでcrt3.oを探してるの?

763 名前:760 mailto:sage [2008/03/15(土) 17:53:03 ]
あ、しつれい
ld: file not found: crt3.o
だった

764 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:42:15 ]
Phobosのboxer.dの中に
TypeInfo type() const
{
return cast(TypeInfo)p_type;

こういうメソッドがあるけど、constがメソッド名の後ろにあるのってどんな意味があるんでしょう?



765 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:48:01 ]
それはC++風の書き方で、普通はconst TypeInfo type()と前置する。
constをつけたメンバ関数はconstメンバ関数とみなされて、
thisポインタを経由してオブジェクトの状態を変更しないことが保障される。

766 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:19:41 ]
>>765
なるほど、C++だとこういう風に表記するんですね。
わざわざ後ろにあるので何か特別な意味があるのかと思いました。
有難う御座いました。

767 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:43:32 ]
Tangoについての質問です。
やりたいことは正規表現でstr中のURLをハイパーリンクにすることなんですが、

auto replaced = Regex(r"((?:f|ht)tp://[\w\.$,;:&=?!*~@#\(\)/]*)").replaceAll(str, "<a href=\"$1\">$1</a>");

こういうコードにしてみたら戻り値が無いんですが、perlの

$str =~ s/((?:ht|f)tp\:\/\/[a-zA-Z0-9.$,;:&=?!*~@_\(\)\/#]*)/<a href="$1">$1<\/a>/g;

のようにするにはどうすれば良いのでしょうか。


768 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:19:16 ]
>>767
Tango使ってないけどソース見てみた.
>戻り値が無い
ということはnullということなんだろうけど,
ただ単にその正規表現だと見つけれてないだけな気がする.
ソース見る限りはsearchやってるだけだし.
Phobosのregexp.dの中にURL用の正規表現文字列があるからそれ使ってみるとか.

Phobosのregexp.dだと後方参照しないグループ化は出来なかったと思うんだけど(余り使ってないので自信なし),
TangoのRegexp.dだと出来るのか.

769 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:06:49 ]
>>767
俺もTangoは使ってないんだが、マニュアルを見る限り、
(?:ht|f)の所は(?ht|f)が正しいのではないかと思う。
あと、replaceAllで$1とかは使えないかもしれない。
ソースを見てみると単純に連結していて、$1とかでどうこうという処理はしていないようだから。


770 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:45:32 ]
>>768
searchやってるだけじゃないよ。

>>767
なんとか動いた。 $1とかは置換してくれないみたいだね
固定した文字列との置換なら、delegateのいらない方のreplaceAllでもOK

(?:)は使えないので()を使用する。 phobosのregexpもそうだったはず。

//tango-0.99.5 で新しくなったRegex用
import tango.text.Regex, tango.io.Stdout;
void main() {
char[] s = `hoge pc11.2ch.net/ hoge www.digitalmars.com/d/ fuga`;
auto re = RegExpT!(char)(`((ht|f)tp\:\/\/[a-zA-Z0-9.$,;:&=?!*~@_\(\)\/#]*)`,`g`);
auto dg = delegate char[] (RegExpT!(char) re) { return `<a href="`~re.match(1)~`">`~re.match(1)~`</a>`; };
char[] result = re.replaceAll(s, dg);
Stdout(result).newline;
}

771 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:57:58 ]
aliasがあるから、わざわざRegExpT使わなくてもいいみたい

import tango.text.Regex, tango.io.Stdout;
void main() {
char[] s = `hoge pc11.2ch.net/ hoge www.digitalmars.com/d/ fuga`;
char[] result = Regex(`((ht|f)tp\:\/\/[a-zA-Z0-9.$,;:&=?!*~@_\(\)\/#]*)`,`g`).replaceAll(s, (Regex r) { return `<a href="`~r.match(1)~`">`~r.match(1)~`</a>`; } );
Stdout(result).newline;
}

772 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 07:27:35 ]
>>770-771
どうもです。
そのソースをまるまるコピペして動かしてみたんですが、
object.Exception: Access Violation
となってしまいました。
うーん。

773 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 14:11:47 ]
>>772
とりあえずTangoを入れて動かしてみたけど
>object.Exception: Access Violation
となるのはStdoutのせいっぽい(俺の環境では).
tango.io.ConsoleのCoutを使ったら,771のソースでちゃんと置換されたのが表示された.
Stdoutでこのエラーになる原因は面倒なので追ってない.

774 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:32:06 ]
tango.text.Regex の compileToD すごいな。
出力されたコードを少し書き換えたらCTFEでも動いた。
CTFEで正規表現使いたい時にいいかも。
単純な処理しかしてないから、
Cやアセンブラに書き換えるのも容易かも。しかし長いw



775 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:21:13 ]
>>772
Stdoutでバグるのは,Regex.dでdebug時にStdout.dをimportしてたから
コンパイル時にdebugオプションをつけたら動くようになった.
といってもdebugなしで普通にimportしてもエラーが出るので,
この辺の原因はよく分からない.
static thisとかの初期化とかで何か問題が発生してるのかも.
力になれなくて申し訳ない.

776 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:54:33 ]
PhobosとTangoが仲良くなりますように(-人-)

777 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:54:47 ]
っTangobos

778 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:25:04 ]
>>773>>775
うーむ、
Stdoutはデバッグで使いたいので、こうなると正規表現でURLを抜き出すのは面倒ですね。


別の手法も思いついたのでそっちで一度試して見ます。
どうもでした。

779 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:50:17 ]
>>778
もういいかもしれないけど,とりあえず追加で書いとく.
Stdoutがどうこうとか書いたけど,自分でもよく分からなくなってきたw
771のソース前提で,とりあえず出力される方法.

・Cout/Cerrを置く
色々試してたら,Cout/Cerrを置くと普通にStdoutでも出力されるようになった.
・Stdout(Stdout);
これを置いても出力された.Stdoutの型も出力されるので使えない.
・Stdout.dと同じことをやる
Stdout = new Print!(char) (new Layout!(char), Cout.stream);
同じことしてるのに効果が違うのはよく分からないんだけど.

どれも根本的な解決策じゃないので応急処置的な感じ.
>>770は動いているようだし,環境も関わってるのかなぁ.
それにしてもStdout(Stdout)がまともに動くのは何故…

780 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 12:16:11 ]
日本語うめえ

781 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 12:16:34 ]
誤爆

782 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:57:50 ]
なんかネタないの?

783 名前:770 mailto:sage [2008/03/18(火) 17:35:48 ]
>>779
こちらでも、dmdでビルドしたものはAccessViolation出ました。
budで、tango-user-dmd.libを使わずにビルドすると正常動作するけど、
使う設定でビルドだと、AccessViolationでした。

tango-user-dmd.libを再makeすれば直るのかな??

784 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:37:12 ]
>>783
budでOKということで,試しにDSSSでビルドしたら普通に動いた.
これくらいは昨日試しておくべきだったorz
770の言うとおり,生成済みライブラリになんらかのバグ(コンパイル状況による?)があるっぽいね.

Tangoのソースからのビルドが英語だらけで挫折.



785 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 06:46:04 ]
>>782
ソースを落として、dmd.exeとdmc.exeにパスが通っている状態でlib内のbuild-tango.batとかを実行
…だと思うのだけど、再コンパイルできなかったりできてもやっぱりバグったリ…何かがおかしい。

786 名前:785 mailto:sage [2008/03/19(水) 06:47:12 ]
>>782 じゃなかった… >>784 でした。申し訳ないorz

787 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 03:37:51 ]
今のところ2.0で動くGUIライブラリってない?

788 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 11:46:08 ]
wxDの履歴にinvariant string対応とかあるけどどうなんでしょ

789 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 15:28:54 ]
tangoのDateTimeとかはどこに消えたんですかね・・・
似たようなクラスって何かありますか?

790 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:29:35 ]
tango.time.Timeの中にあるようだけど

791 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:55:15 ]
久しぶりにPoseidon落としてみたが、キーボードショートカットでrun_projectの割り当てが出来るようになってた。
軽いし、やっぱり気軽にプログラミングするにはいいエディタだな。

792 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:22:35 ]
D言語をMac OS Xで始めました。
目的はWin/Linux用のD言語で書かれたコンソールアプリの移植です。
最初に既存のソースコードをXcodeからコンパイルして勉強できる環境を構築しようと思い立ち
いろいろ調べていますが、参考になるサイト等見つかりません。
どなたかMacでその道に足を踏み入れた方はいらっしゃいますか?

793 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:46:49 ]
D1/D2どちらでもいいので
C++のstringstreamみたいなのが欲しいんだけど
ありませんでしたっけ?

>>792
Macのは見かけたことないなー

794 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:02:49 ]
MemoryStreamに書いて、readStringとか。



795 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:24:03 ]
OutBufferに書いて、toBytesとか。

というかOutBufferの存在価値が昔から空気過ぎるんだけど必要なのかこれ。

796 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:27:01 ]
>>794 こうだと何も表示されないんだけど何が足りないのでしょう?
import std.stdio;
import std.stream;
void main(){
Stream ms = new MemoryStream;
ms.writeLine("hello");
string s = ms.readLine().idup;
writefln(s);
}
>>795 OutBufferはいらないよな・・・

797 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:29:54 ]
Streamは読み書きでpositionを共有してるからpositionのリセットが必要。
import std.stdio; 
import std.stream; 
void main(){ 
Stream ms = new MemoryStream; 
ms.writeLine("hello");
ms.position = 0;
string s = ms.readLine().idup; 
writefln(s); 


798 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:30:16 ]
これでできたようです
import std.stdio, std.stream;
void main(){
 Stream ms = new MemoryStream;
 ms.writeLine("hello");
 ms.writeLine("world!");
 string s = ms.toString();
 writefln(s);
}

799 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:31:30 ]
>>797 もしかしてそうじゃないかなと思ってpositionを再設定しようと
思ったんだが 0 を入れればいいのかわからなかったので
発見した toString() を試してみたらいけました
ありがとう

800 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:34:58 ]
>>799
toStringでもOK。
ただ、toStringはread可能,seek可能かによって微妙に動作が変わるから注意な。

801 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:38:38 ]
>>795
std.openrjと同じくらいは役に立つんじゃね?

802 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:47:09 ]
>>790
これは・・・・・

もしかしてまだ作りかけなのかな・・・・

803 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:56:33 ]
壮絶な勘違

804 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:00:49 ]
単に.NETみたいにしたいだけなんじゃ…








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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