- 1 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:37:43 ]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。
- 403 名前:397 mailto:sage [2008/04/01(火) 02:34:57 ]
- >>398
環境依存てことですかね〜。 >>399 vcとのクロス開発あたりだとエラーがでてしまうのです;; 根本的になにをやりたいかというと、 シリアライズ機能を自前で実装しようと考えていまして 実装の際にRTTIのtypeidを利用して組むとらくそうなのですが・・・ ない場合はMFCやwxWidgetのようなクラス毎にマクロを仕組んで 独自の機構を作るしかないのかなって悩んでしまって・・ ※boostのシリアライズという選択肢もありますが、boostが対応していない環境も考慮しました。
- 404 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 06:49:14 ]
- というか、例外・RTTI・CRTは、何も考えずに
DLL超えとか、コンパイラ/オプションの違うlibを混ぜるとか するとハマるよ?
- 405 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 06:58:03 ]
- >>403
libのクラスをもう一度派生させたのを使ってみてはどうかな? 念のために聞くけど、そのlibをコンパイルしたコンパイラと使ってるコンパイラの種類とバージョンはあってる?
- 406 名前:397 mailto:sage [2008/04/02(水) 04:43:48 ]
- >404
こちらはそこを懸念してるんですが、出来上がったものを使うのは私ではないのでなんとも・・・ >405 バージョンのほうはあってますが、こちらでつくったモジュールがどのようなケースで使用されるか をすべて網羅するわけにはいかないので・・ 派生というかstubのようなものをproxyとして使用する感じでしょうか? なんというか、それなりの状況でも使用に耐えうるもの、となると 結局RTTIははずさなければならないのかな、と思いました。
- 407 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 05:08:21 ]
- これはひどい
builder.japan.zdnet.com/sp/c-programming-language/story/0%2C3800083430%2C20370255%2C00.htm
- 408 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 06:12:08 ]
- アクセスできるすべての識別子をリストアップするようなツールはないでしょうか。
class X { int i; public: int j; void f() {} }; というような場合に、 X X::j X::f() みたいに出力できるとうれしいのですが……。自分で字句解析するしかないかな。
- 409 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 06:47:39 ]
- doxygenいろいろ設定すれば出来るんじゃね?知らないけど。
- 410 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:45:55 ]
- >>407
他で散々話題になっているんだからここでまで張らなくていいよ。
- 411 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 00:16:30 ]
- >>408
doxygenで可能。privateは出てこない(設定で変えられるかも)
- 412 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 13:46:16 ]
- extern "C"しないで作られたshared libをcから呼ぶ方法ないでしょうか?
- 413 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 14:19:43 ]
- マングリング名がCの識別子として使えるならいけるかもね
- 414 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 14:49:22 ]
- C++ で C 用のラッパ関数作るといい。
- 415 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:47:51 ]
- >>412
.defファイルをがんがって作る
- 416 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:14:21 ]
- ふつーにdlopenするとか。呼び出し規約が同じとは限らないけどw
- 417 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 17:03:38 ]
- gccxmlを使った他言語(pythonなど)への
インターフェース自動生成ツールが最近でてきてるけど ちょっと複雑なコードだと自動生成に失敗するみたいだ まだ発展途上のツールだから仕方ないのか gccxmlに渡すオプションを考えればうまくいくのか どうなんでしょうか?
- 418 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:28:21 ]
- Exceptional C++ を読んでて、疑問点が出てきましたので質問します。
P173〜181 にかけての auto_ptr についての説明中に、 T* pt( new T(1) ); auto_ptr<T> pt( new T ); auto_ptr<T> a( source() ); ↑どう見ても関数呼び出しに見えるのですが、 初期化子と解釈しないとどうも前後の説明から辻褄が合いません。 ですが、手元にある数冊の参考書を調べてもググってみても 以上のような構文は「コンストラクタ初期化リスト」以外には見あたりませんでした。 これは関数呼び出しなのでしょうか?それとも初期化子なのでしょうか? もし、初期化子だとしたら、このような構文が出てきたときに どのようにして見分けたら良いのでしょうか? また、関数呼び出しのように見える初期化子の使い方についても よろしくご教示願います。
- 419 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:34:16 ]
- まさか<T>の部分を聞いてるのか?
- 420 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:43:27 ]
- int i = 0;
int i(0); 上のふたつは等価、という話なのかな? typename identifier(typename, typename, ...); // プロトタイプ宣言 typename identifier(arg1, arg2, ...); // 初期化 identifier(arg1, arg2, ...); // 関数呼び出し ただし、C++では、関数宣言として解析できるものは関数宣言と見なすので、 list<int> data(istream_iterator<int>(cin), istream_iterator<int>()); は(cinの内容で初期化したlistの宣言ではなく)関数宣言になる。
- 421 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:26:48 ]
- typedef typelist< char, 1, 2, 3, bool > LIST;
なんてことは出来ないですかね?
- 422 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:32:31 ]
- boost::mpl, boost::tuple, boost::fusion辺り?
- 423 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:43:42 ]
- >>418 読むだけじゃなくていろいろ試してみたら?
- 424 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:49:20 ]
- classメンバを外部からリードオンリーに出来ませんか?
全部のメンバにゲッタを設定するのも面倒ですし
- 425 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:49:20 ]
- >>418
その本持ってるが、その部分に間違いはない。 auto_ptrのメンバ関数のインターフェース見れば疑問は無くなるはず。
- 426 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:19:52 ]
- >>424
面倒でも書く。
- 427 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:32:34 ]
- >>424
class A{ public: int aho; }; const A baka; //全部リードオンリーなクラス
- 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習いたてですか?
|

|