- 1 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:37:43 ]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。
- 428 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:46:55 ]
- >>424
必要になるまでゲッタなんて書かなきゃいい。
- 429 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:59:50 ]
- >>424
constは?
- 430 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:07:46 ]
- constなんてダサい。時代はreadonly。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:08:06 ]
- extern "C" {
struct B : public A {}; } ができた. class AのデータだけにはCからアクセスできるのかも methodは無理か?
- 432 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:25:03 ]
- extern "C" は変数と関数にしか意味がないからな。
- 433 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 08:03:03 ]
- >>424
class A { int member_prv; public: const int & member; A() : member(member_prv) {} } まあ何だ、C++にはReadOnlyなプロパティを書く構文的な補助がないから、素直にgetter書いとけ。
- 434 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 12:05:30 ]
- 漏れはこんなマクロを書いた。
#define readonly(TYPE, ID)\ public: TYPE ID() const { return _##ID; }\ private: TYPE _##ID class C { readonly(int, priv); readonly(unsigned int, b1) : 16; readonly(unsigned int, b2) : 16; public: C() {} };
- 435 名前:デフォルトの名無しさん [2008/04/08(火) 17:57:59 ]
- キーワードtypenameの意味が分かりません。テンプレートを定義するときに
よく使われるようですが、なくても良いような気がします。例えば、 プログラミング言語C++のp.599にある bind2nd の定義のtypenameを取って コンパイルしてみましたが、コンパイルが通って、テストコードがきちんと 動きました。typenameの存在意義を教えていただけないでしょうか。 こういう場合にtypenameがなければ困るという分かりやすい例が欲しいです。 // ----- プログラミング言語C++(p.599)より ----- template <class BinOp> class my_binder2nd : public unary_function<BinOp::first_argument_type, BinOp::result_type> { // my_を付けて実験 protected: BinOp op; typename BinOp::second_argument_type arg2; // このtypenameを取ってみた。 public: my_binder2nd(const BinOp& x, const typename BinOp::second_argument_type& v) // このtypenameも取った。 : op(x), arg2(v) {} result_type operator()(const argument_type& x) const { return op(x, arg2); } }; template<class BinOp, class T> my_binder2nd<BinOp> my_bind2nd(const BinOp& op, const T& v) { return my_binder2nd<BinOp>(op, v);
- 436 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:30:35 ]
- >>435
www.fides.dti.ne.jp/~oka-t/cpplab-template-4.html
- 437 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:33:46 ]
- C++FAQにありそうなネタだな
- 438 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:18:03 ]
- コンパイラの迷いを断ち切るためにあります
- 439 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 04:22:44 ]
- >>436
なるほど、理解できました。でもコンパイラが十分賢ければtypenameは不要だと 言えそうですね。コンパイラはテンプレートの解析時においては typename を付けていない T::something が型かどうか分かりませんが、実際にコードを 生成するときには分かるので、本質的には曖昧さの問題はないように思えます。
- 440 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 08:02:13 ]
- 移植性を考慮するなら付けておけばいい。
- 441 名前:デフォルトの名無しさん [2008/04/09(水) 15:23:39 ]
- 別のファイルで定義した変数を使うにはどうしたらいいんでしょう?
プログラムの改変を行っているのですが、前任者が作業ごとにファイルをわけています。 AAA.cppみたいなのがいっぱいあります。ヘッダファイルも同じ名前でたくさんあります。
- 442 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:03:35 ]
- ググって一番上に来たサイト。
7ujm.net/C++/extern.html 内容は見てない。
- 443 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:11:09 ]
- VC++ってもうやばくないですか?
今やVBC#でもms単位で計測しないと実行速度違いがわからないぐらいですし 出来ないこともないですよね
- 444 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:34:02 ]
- >>443
場合によりけり あと、その話題はこのスレ向きじゃない
- 445 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:54:39 ]
- >>443
んな事ないよ OpenGL Viewerが前回のバージョンから恐らくC#になったんだと 思うが、やはり動作がもさもさする。
- 446 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:32:09 ]
- >>443
ゲームとかms単位が命取り ms以下単位だったら考えてやる
- 447 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:34:04 ]
- μに縮まったとしてもまだでかいだろ。
- 448 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:42:54 ]
- 数値計算とかやったことないんだろうなあ。
- 449 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:48:47 ]
- >>441
そういうファイル構成はC++では一般的。 その同名のヘッダーを読み込みば、十分アクセスできるはず。その前任者のソースをよく読んでC++を勉強すること。 C++はexternを滅多に使わないからね。
- 450 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:55:45 ]
- XBOX360のゲームは全部C#で書かれてるだろ
- 451 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:57:04 ]
- >>443
全然やばくない。世界はもっと広い。
- 452 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:26:56 ]
- >>439
T::something が型でも値でもコンパイルできてしまう場合は困るでしょう? 多分どちらかは間違っているんだから
- 453 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:06:55 ]
- >>450
んなわけないだろ プロがXNAで開発してるとでも思ってるのか?
- 454 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:56:02 ]
- 思ったw
- 455 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:26:41 ]
- .netフレームワークを要求する商用アプリで動きが機敏なアプリをいまだかつて見たことないな。
- 456 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:32:25 ]
- 多言語からc++を呼ぶインターフェイスで
std::cout がおかしくなる原因になってるらしくなんとかしたい #define __streambuf なにか にできればいいのだけど voidに置き換えるとコンパイルとおらない 何か適当なクラスでもないでしょうか?
- 457 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:38:17 ]
- ios::sync_with_stdio で解決されるような問題じゃなくて?
- 458 名前:456 mailto:sage [2008/04/10(木) 00:12:16 ]
- 他言語の処理系がstdcoutをすでにリンクしているのに
さらにその処理系から呼び出すcのプログラム中でもリンクしてるのが 問題なってる可能性があるような気がしています なので #define __streambuf Hoge できると多分うまくいくのではないかと
- 459 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 00:17:47 ]
- XNAなめんな
- 460 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 00:22:13 ]
- >>456
多言語から呼び出すってっ、もしかすると他言語からDLL呼び出しすることってことかな? だったらライブラリの初期化がうまく言ってないんじゃないか?dllmainはこねこねした?
- 461 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 00:23:42 ]
- あと、DLLはマルチスレッドライブラリでコンパイルだよ。
- 462 名前:456 mailto:sage [2008/04/10(木) 00:24:19 ]
- >>460
正確にはlibhoge.soを呼んでます libhoge.soがstd::stream関係をリンクしてます
- 463 名前:460 mailto:sage [2008/04/10(木) 00:27:49 ]
- linuxでしたか。>>460はwinの場合の注意事項でした。
- 464 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 07:50:43 ]
- >>461
MTでコンパイルしないといけない決まりでもあるの?
- 465 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 08:21:08 ]
- >>464
ある。 DLLをコンパイルするときはMTでする必要がある。プロジェクトの作成でDLLを選択すると自動的にマルチスレッドランタイムライブラリが選択される。 呼ぶ側はどっちでもいい。
- 466 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:49:02 ]
- >>465
何の処理系の話か知らないがVisualC++なら シングルスレッドのランタイムの静的ライブラリをリンクしたシングルスレッド専用のDLLを普通に作れる
- 467 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:57:21 ]
- 端で見てて想像した通りの食い違い方w
- 468 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:10:14 ]
- 初歩的な質問で申し訳ないんだが、他言語から C++ の
ライブラリを使って問題無いはず、という保証はあるんだろうか? あと、普通に C++ で呼び出すとかなぜしないのだろうか。 (これは状況がわからんとなんとも言えないけど)
- 469 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 14:18:03 ]
- operator==() の定義はクラスの中とクラスの外に置けますがどのように
使い分けるのでしょうか? std::type_info はクラスの中でその他はクラスの外が多いのですが。
- 470 名前:デフォルトの名無しさん [2008/04/10(木) 15:34:04 ]
- 別にoperator==()に限らずメンバ関数は中にも外にも置けるけど。
- 471 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 17:04:36 ]
- ププ
- 472 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 17:05:09 ]
- ペペ
- 473 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 17:30:44 ]
- == どうするかは状況によるんでは。無理無く member にしないで
いいならそうすればいいような気がするが。中身の情報が必要な 場合に member にしてるんじゃないの?普通に生じる状況だと思うけど。
- 474 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 17:43:05 ]
- メンバに出来るものは中に書く。
メンバに出来ないものは外に書く。 以上。
- 475 名前:デフォルトの名無しさん [2008/04/10(木) 18:05:52 ]
- c++のエラー出力の文字コードがutf-8になっているのですが、
euc-jpにする方法ありますか? Linuxのeuc-jp環境でプログラミング行っており、 gcc version 4.1.2 です。
- 476 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 18:18:07 ]
- iconv
- 477 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 18:40:50 ]
- ロケール切り替えろとしか
- 478 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 19:06:32 ]
- public 関数だけで実装できる場合は非メンバーにする。
friend を使って非メンバーにすることもある。
- 479 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 20:50:36 ]
- 式の対称性が必要なら非メンバー
- 480 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 20:59:53 ]
- 自身への参照を返すことが期待されるか、自身を変更する場合は、メンバーにすることが漏れは多いな。
operator=, +=等はメンバに。operator==, <<, +等は非メンバ(場合によってはfriend)にしてる。
- 481 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:08:54 ]
- op == あたりの話はeffective C++に書いてなかった?
もう忘れちゃったけど。 グローバルにop ==を置くことでカプセル化が上がるとか その話とはまた別?
- 482 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:20:10 ]
- friend はできれば避けた方が良いというの無かったっけ?
- 483 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 22:12:02 ]
- C++ Coding Standards の 44 には
「できるだけ非メンバーかつ非 friend の関数を書くようにしよう」 というのがありました。
- 484 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 22:19:02 ]
- C++の本質はやっぱプリプロセッサとテンプレートだろ・・・
オブジェクト指向なんてうんこ
- 485 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:00:41 ]
- プリプロセッサはちょっと違うだろ・・・
現実的にメタプログラミングするのには必要だけど。 個人的にはデストラクタを推すね。 2行目は同意。
- 486 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:08:04 ]
- デストラクタとはいいところをつくね。
RAII 万歳!
- 487 名前:デフォルトの名無しさん [2008/04/10(木) 23:25:35 ]
- friendかな
- 488 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:58:56 ]
- >>485 == >>486 ??
- 489 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:01:31 ]
- デストラクタの価値が分からないうちは
プログラマの資格なしだぜ
- 490 名前:485 mailto:sage [2008/04/11(金) 00:03:01 ]
- >>488
ID出ない板だからどうしようも無いけど、 違うとだけ。
- 491 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:14:49 ]
- デストラクタはクリティカルセクション解除するのに使ってる。
メモリリークどころの騒ぎじゃない
- 492 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:17:31 ]
- Javaとかどーやってんだ?
デストラクタ
- 493 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:20:23 ]
- Javaはcloseとかdisposeとかメソッド作って
呼び出さないといけないんじゃなかったっけ?
- 494 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:25:56 ]
- Javaはデストラクタ勝手に作ってくれるから。
DB接続とかファイルハンドルにクリティカルセクションだの なんでも閉じてくれる。
- 495 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:28:48 ]
- 前スレから
pc11.2ch.net/test/read.cgi/tech/1200044614/496- 496 :デフォルトの名無しさん [sage] :2008/02/15(金) 14:44:30 つまるところc++ではデストラクタに頼るべき。 497 :デフォルトの名無しさん [sage] :2008/02/15(金) 14:54:04 C++はつまるところデストラクタのことだからな closeさせといてガベージコレクタがあるとか抜かす言語は笑えるな intは回収できるが巨大なファイルリソースはリークするわけだ 498 :デフォルトの名無しさん [sage] :2008/02/15(金) 15:06:22 日本語でおk 499 :デフォルトの名無しさん [sage] :2008/02/15(金) 15:08:34 >closeさせといてガベージコレクタがあるとか 禿げあがる程同意。 C#はusing(o1,o2,...){}があるから多少マシだけど、 forみたいにusing用のスコープ作るから スコープ違いが混じるとネストして見辛くなる。 どう考えてもc++みたいに対象の変数のスコープでDisposeした方が良いと思う。 javaのtry-finally-closeに至っては論外。 しかもcloseで例外出たらfinally内で潰さないと try内で発生したより重要な例外が消されるし・・・。 500 :デフォルトの名無しさん [sage] :2008/02/15(金) 16:33:04 >どう考えてもc++みたいに対象の変数のスコープでDisposeした方が良いと思う。 そして言語はC++/CLIへと進化するのであった、まる
- 496 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:34:08 ]
- Javaをはじめ、メジャーな言語のGCはメモリ不足しか認識しないから、
明示的にcloseしない場合、メモリに余裕があればfinalizeは呼ばれず、 DB接続も閉じられない そしてコネクションプールのタイムアウトで死に始める業務アプリ 鳴り始めるサポートデスクの電話機達
- 497 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:39:21 ]
- まぁJavaなんてマーケット戦略で広まっただけのうんこ言語だからな・・・
プログラマと名乗るくらいならC++くらいできる頭を持って欲しい・・
- 498 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:59:54 ]
- finalize()でリソース解放なんて保険でしかないからな
- 499 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:00:32 ]
- リソース管理で似た話を読んだことある気がしてたけど思い出せた
ttp://mag.autumn.org/Content.modf?id=20050506023118
- 500 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:00:40 ]
- でもね、C++は巨大で複雑怪奇だからね。Cを引きずってる面もあるし。
無駄を削ぎ落として細部を明確にした言語が望まれるというのもわかるよ。 それとGCの有用性とは別の話だが。
- 501 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:03:52 ]
- 実はVBなんかも
リソース周りは優秀だったりする
- 502 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:26:11 ]
- continuationを明示的に扱えない言語はうんこ
- 503 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:26:35 ]
- scheme習いたてですか?
- 504 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:55:30 ]
- >>503
C++習いたてです。
- 505 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 07:46:34 ]
- C#のusingの使いづらさは異常
scopedとでもして識別子が入ってるブロックの最後でdisposeしてくれたほうがよかった
- 506 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 08:50:00 ]
- 素朴な疑問です。
#include <iostream> struct S { virtual void hoge() = 0; // 純粋仮想のみ }; struct S1 : public S { void hoge() { std::cout << "S1" << std::endl; }}; struct S2 : public S { void hoge() { std::cout << "S2" << std::endl; }}; int main() { S1 s1; S2 s2; S& r1 = s1; S& r2 = s2; r1.hoge(); r2.hoge(); r1 = r2; // 基本クラスの参照を代入 r1.hoge(); r2.hoge(); return 0; } VC8で上記のコードを実行すると S1 S2 S1 S2 と表示されました。 r1 = r2;はS::operator=を呼ぶだけなので何も変わらない、と理解したのですが、 これはC++的に正しい挙動なのでしょうか? それとも未定義でたまたまこうなっているだけなのでしょうか?
- 507 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 08:55:40 ]
- あ、改行を削ったらコメントをミスりました。
> struct S { virtual void hoge() = 0; // 純粋仮想のみ }; は > struct S { virtual void hoge() = 0; /* 純粋仮想のみ */ }; です。
- 508 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 08:56:43 ]
- 単純に、自動生成されたoperator=(S, S)で仮想関数テーブルが書き換わらないようになってるだけ。
- 509 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 08:57:18 ]
- s1, s2のうちSの部分だけがコピーされた、と解釈すればわからんでもない
- 510 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 09:00:15 ]
- とりあえず解決するには自分でS2 operator=(S, S)を定義すればいいように思えるが、
それはS = Sの一般的な代入に関して考えるとかなり狂っているから諦めろって言う話でっていう
- 511 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 12:27:47 ]
- >>498
同意。finalizeって呼ばれるとは限らないとか。ほんとに気休め程度だね。
- 512 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 13:29:20 ]
- >>506
代入や他オブジェクトでの初期化でvptrは変更されない。
- 513 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 15:56:17 ]
- class A { friend class B; int x; };
class B { class C {}; }; VC8.0 では class C から class A の x が参照できますがこれは C++ の仕様ですか?
- 514 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 19:00:01 ]
- Cのreadableなプログラムを自動生成するメタ言語みたいなの
ないでしょうか? readableじゃないのならあるのですが、読めないと意味ないのです
- 515 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:01:17 ]
- 具体例を。
- 516 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:08:22 ]
- まともなCソースも >>514 には、readable じゃなさそうだ...。
- 517 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:17:27 ]
- vector<int>で何個か反復子を進めたあと、
それが今何番目の要素なのかを知る関数はないですか?
- 518 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:20:51 ]
- >>517
std::distance
- 519 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:21:19 ]
- i - v.begin();
- 520 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:55:08 ]
- できました、ありがとうございます。
- 521 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:34:09 ]
- mag.autumn.org/Content.modf?id=20050506145337
ここ読むとC++よりもJAVAのほうがリソース管理に関して 優れているように思えるんだけど
- 522 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:42:17 ]
- だから何だよ
- 523 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:46:30 ]
- 優れているというかパフォーマンスを犠牲にしてリソース管理の安全性を高めたという方が近いかな。
そんな事いったらC++も保守性を犠牲にパフォーマンスを高める余地のある言語と言えるけど。 ただJavaの場合は“余地”どころかプログラマに選択をさせない完全な“切捨て”であるけどね。 だからプログラマが手段を選択できる余地の残っているC++の方が優れている。終了。
- 524 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:49:22 ]
- 手段を選択する必要のある場面においては、だけどな。
- 525 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 02:15:33 ]
- javaってfinallyの書き方間違えると死ねるしなあ
という話が >>495 にあるよ jdbcでoracle使ったことがある人は知ってると思うけど、 closeし損ねるとリークしてそのうち動かなくなるんだよね これを注意深く追ってると、「なんだかCでやってんのと変わらんなあ」 と思うぜ、実際。
- 526 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 02:27:32 ]
- だってメモリしか管理してくれないもの
- 527 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 07:08:37 ]
- >521
「RAIIが発明されるまでのC++」については、Javaのほうが リソース管理が優れていた、と云わざるを得ない、けどねぇ。
- 528 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 07:25:04 ]
- 他のリソースも管理してくれればいいのになあ。
ファイルハンドルが足りない時には ファイルクラスのインスタンスへのガベコレを 優先的にやってくれるとか。
|

|