- 1 名前:仕様書無しさん [2007/08/14(火) 23:48:45 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#17 pc11.2ch.net/test/read.cgi/prog/1183700531/
- 693 名前:仕様書無しさん mailto:sage [2007/09/30(日) 18:57:52 ]
- もし使ってる言語に、midやらsubstring相当の機能しかなかったら、leftやらrightやらって
ルーチンを自作して使う。 機能が限定されてるルーチンのほうが意図が伝わるから。
- 694 名前:仕様書無しさん mailto:sage [2007/09/30(日) 19:19:42 ]
- 顧客 「開発方法はLyeeとありますが?」
カテナ「はい。Lyeeです。」 顧客 「Lyeeとは何のことですか?」 カテナ「理論です。」 顧客 「え、理論?」 カテナ「はい。理論です。開発期間が従来の5分の1〜10分の1です。」 顧客 「・・・で、そのLyeeは当社での開発で何のメリットがあるとお考えですか?」 カテナ「はい。設計もテストも不要です。」 顧客 「いや、そもそも設計やテストは貴社の担当です。それに設計書が無いのは不安ですね。」 カテナ「でも、業務知識がなくても開発可能ですよ。」 顧客 「いや、可能とかそういう問題じゃなくてですね・・・」 カテナ「ドキュメント量が100分の1ですよ。」 顧客 「ふざけないでください。それに100分の1って何ですか。だいたい…」 カテナ「1%です。保守資料無しとも考えられます。深層心理においては…」 顧客 「聞いてません。帰って下さい。」 カテナ「あれあれ?怒らせていいんですか?使いますよ。Lyee。」 顧客 「いいですよ。使って下さい。Lyeeとやらを。それで満足したら帰って下さい。」 カテナ「運がよかったな。今、撤退を決めたみたいだ。」 顧客 「帰れよ。」
- 695 名前:仕様書無しさん mailto:sage [2007/09/30(日) 20:14:58 ]
- >>694
Lyeeでググってみたけど、UMLからソースコード生成するのと似たようなもん? 完全生成できたとしてもシステムテストとかはするよな、普通。
- 696 名前:仕様書無しさん mailto:sage [2007/09/30(日) 21:58:53 ]
- 思い出した!
VBで「こうやんないとうまく動かない」みたいな(正確には覚えてないけど)関数名があった。 コメントならまだしも、勘数名でこれとは...
- 697 名前:仕様書無しさん mailto:sage [2007/09/30(日) 23:08:32 ]
- >>694
普通はこうなる。 顧客 「開発方法はLyeeとありますが?」 カテナ「はい。Lyeeです。」 顧客 「Lyeeとは何のことですか?」 カテナ「理論です。」 顧客 「え、理論?」 カテナ「はい。理論です。開発期間が従来の5分の1〜10分の1です。」 顧客 「つまりその分開発費用も安くなると言うことですか。すばらしい。よし採用。けってーい。」 まあ、Lyeeなんてしらんがなw
- 698 名前:仕様書無しさん mailto:sage [2007/10/01(月) 01:06:28 ]
- Lyeeって情報システム板でやたらスレが荒れてた記憶があるな。
- 699 名前:仕様書無しさん mailto:sage [2007/10/01(月) 02:31:13 ]
- だってあれは・・・良く見てみれば。プリコンパイラにしか過ぎない。
- 700 名前:仕様書無しさん mailto:sage [2007/10/01(月) 03:52:55 ]
- てst
- 701 名前:仕様書無しさん [2007/10/01(月) 12:41:33 ]
- >>670
www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
- 702 名前:仕様書無しさん mailto:sage [2007/10/01(月) 21:10:18 ]
- >>670
>>701 スレ違いになってしまったけどサンクス これでCPANの古めのモジュールがmakeできるかもしれん
- 703 名前:仕様書無しさん mailto:sage [2007/10/02(火) 22:02:30 ]
- >>696
そういえばあの関数なぜかうまく動かないからその関数は自分で作ったよ。 傍から見たらライブラリにあるのになんで?って思われるだろうな。
- 704 名前:仕様書無しさん mailto:sage [2007/10/05(金) 01:03:37 ]
- Cで関数定義の頭に概要の説明が書いてあるソースがあった。
/* -- 概要 共通ログ出力関数 呼び出し方法: void logfunc(int errcd, char *funcname); 引数:なし 戻り値:0:正常 -1:異常 */ void outlog(int errcd, char *funcname) { ...以下定義 もう一つ /* 呼び出し方法: int func(void) 戻り値:0:正常 -1:異常 */ void func(){/* 定義 */} ..で実際の呼び出し箇所にいくと func("XXXX"); 1つ2つならまだいいけど、万事がこんな感じ。コメントウソ書きすぎ。 わざとやってるんじゃないかと疑いたくなってくる。
- 705 名前:仕様書無しさん mailto:sage [2007/10/05(金) 02:41:57 ]
- 「苦肉の策」とか「後で修正しておくこと」とかもう諦めてるんだけど、
「苦肉の策!(笑)」とか「後で修正する必要アリ(´д`)」とかになってるとマジ辛い。 昨日も昼ごろ似たようなコメント見つけて午後ずっと気分悪かった。
- 706 名前:仕様書無しさん mailto:sage [2007/10/05(金) 09:18:07 ]
- 気持ちに余裕がないのね
- 707 名前:仕様書無しさん mailto:sage [2007/10/05(金) 09:34:42 ]
- ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=41464&forum=7&start=16
どれを削除したらいいか判断できないような混沌としたプロジェクト C#ってこんなのが普通なのか?
- 708 名前:仕様書無しさん mailto:sage [2007/10/05(金) 10:51:30 ]
- >>707
コーディング規約や開発者のコード管理能力の問題だろ。 C#に限らず、どんな言語を使ったって、混沌とさせる奴はいる。 それを解決できるツールがたまたま(同じ必要性を感じた)先人によって作られているか、 そんなツールを見つけられるかどうかで、問題を糊塗できるかどうかの違いだけだ。
- 709 名前:仕様書無しさん mailto:sage [2007/10/05(金) 13:04:25 ]
- >>708
C#だからひどくなったんでしょ
- 710 名前:仕様書無しさん mailto:sage [2007/10/05(金) 13:10:19 ]
- >>708
スレタイ嫁
- 711 名前:仕様書無しさん mailto:sage [2007/10/05(金) 13:39:25 ]
- >>708
何が原因でそんな混沌としたプロジェクトになったかなんて興味なくて、 そいうプロジェクトにいたら会社辞めたくなるだろうなってことだよ。 C#は知らないけど、C#だからこそ何を削除したらいいか検索するのが不可能って流れになってるじゃん。 少なくともC++やVBだったら不要メソッドのリストアップは簡単に出来ただろうにね。 (Javaも知らないけど、Javaもそうなのか?) C#コワーw
- 712 名前:仕様書無しさん mailto:sage [2007/10/05(金) 14:15:41 ]
- コードの7割くらいがコメントアウトされた過去のコードのプロジェクトに入れられた…
#if 0〜#endifで除外されたブロックも多数あって発狂しそう orz
- 713 名前:仕様書無しさん mailto:sage [2007/10/05(金) 14:36:27 ]
- スレ違いっぽい話題を引きずることになるかも知れないけど
C++やVBだと不要メソッドのリストアップにどういう方法があるの?
- 714 名前:仕様書無しさん mailto:sage [2007/10/05(金) 14:59:20 ]
- うちはVB厨だが、これを使ってる
ttp://www011.upp.so-net.ne.jp/flatsoft/soft/fs_about_vbcheck.html
- 715 名前:仕様書無しさん mailto:sage [2007/10/05(金) 16:09:54 ]
- >C#だからこそ何を削除したらいいか検索するのが不可能って流れになってるじゃん。
どこにそんな流れがあるんだ
- 716 名前:仕様書無しさん mailto:sage [2007/10/05(金) 16:13:01 ]
- >>713
ググレカス
- 717 名前:仕様書無しさん mailto:sage [2007/10/05(金) 16:14:38 ]
- つーか、リフレクションを駆使するようなチームだったら、コードをクリーンに保つくらいすると思うんだが。
- 718 名前:仕様書無しさん mailto:sage [2007/10/05(金) 16:51:09 ]
- >>715
C#嫌いが嵩じて幻覚でも見てるんじゃ
- 719 名前:仕様書無しさん mailto:sage [2007/10/05(金) 17:00:20 ]
- >>713
VBでこれ使ってる。 ttp://www.aivosto.com/vb.html Cならsplint、C++は昔なんか使ってたような気がするけど忘れた。
- 720 名前:仕様書無しさん mailto:sage [2007/10/05(金) 22:33:55 ]
- 不要社員のリストアップに
- 721 名前:仕様書無しさん mailto:sage [2007/10/05(金) 23:41:32 ]
- >>708
この前、fxcopとかってツールをためしに使ったら、使われてないメソッドとかは指摘されてたような。うろおぼえ。
- 722 名前:仕様書無しさん mailto:sage [2007/10/05(金) 23:41:46 ]
- >>711
C++はおろか、Javaや最近のVBですらリフレクションが実装されていることを知らないこと、 それ以前に問題の本質を見つけられない濁った目、そして文中に漂う全角アルファベット、 おまえ、もしかしてコボラだなww
- 723 名前:仕様書無しさん mailto:sage [2007/10/05(金) 23:47:35 ]
- こぼらがいっぴき
こぼらがにひき… この辺で…俺のはじめてのプロジェクトは火を噴いてあたりを転げまわりだした。
- 724 名前:仕様書無しさん mailto:sage [2007/10/06(土) 00:02:02 ]
- ぇ、C++ってリフレクションあったっの? C++/CLIじゃなくて?
- 725 名前:仕様書無しさん mailto:sage [2007/10/06(土) 00:02:49 ]
- >>707
関係ないが、そこで、上から目線で教えてやってるジッタってやつは、よそのスレで、ツッコミ入れられまくってたヤツだな。 このエントリで。 blogs.wankuma.com/jitta/archive/2007/07/26/87218.aspx
- 726 名前:仕様書無しさん mailto:sage [2007/10/06(土) 00:22:24 ]
- 本当に関係ねえ
- 727 名前:仕様書無しさん mailto:sage [2007/10/06(土) 08:20:06 ]
- >>725
先輩だか上司だかに、添削と言って、こんなソースにされたら、やめたくなるよ。
- 728 名前:仕様書無しさん mailto:sage [2007/10/06(土) 14:14:55 ]
- dim strTemp(10) as string
const intTemp as integer = 10 for i as integer = 1 to intTemp strTemp(i) = "" '処理 next
- 729 名前:仕様書無しさん mailto:sage [2007/10/06(土) 14:17:15 ]
- どの辺が気に入らないんだろう
- 730 名前:仕様書無しさん mailto:sage [2007/10/06(土) 14:30:39 ]
- VBなところ
- 731 名前:仕様書無しさん mailto:sage [2007/10/06(土) 14:35:35 ]
- for i as integer = 0 to intTemp
- 732 名前:仕様書無しさん mailto:sage [2007/10/06(土) 14:53:15 ]
- for i as integer = LBound(strTemp) to UBound(strTemp)
- 733 名前:仕様書無しさん mailto:sage [2007/10/06(土) 15:03:54 ]
- VBの文字列って初期化されてることが保障されてなかったっけ?
- 734 名前:仕様書無しさん mailto:sage [2007/10/06(土) 15:06:03 ]
- for i as integer = 0 to intTemp-1
- 735 名前:仕様書無しさん mailto:sage [2007/10/06(土) 15:12:03 ]
- 綺麗なコーディングしてるだろ
バグってるんだぜ、これで…
- 736 名前:仕様書無しさん mailto:sage [2007/10/06(土) 15:30:29 ]
- >>733
保障されてる
- 737 名前:仕様書無しさん mailto:sage [2007/10/06(土) 19:51:32 ]
- VBって確か、
配列宣言時に指定する数が、 要素数じゃなくて添字の最大値なんだよな
- 738 名前:仕様書無しさん mailto:sage [2007/10/06(土) 20:15:39 ]
- dim a(3) なら a(0) 〜 a(3) だっけ?
昔のベーシックで a(0) を無しにしてメモリを節約するとかいう セコいオプションがあったような記憶がある。
- 739 名前:仕様書無しさん mailto:sage [2007/10/06(土) 20:21:04 ]
- VBでは、option base で配列の添字を 1〜にするか0〜にするか変更できる。
- 740 名前:仕様書無しさん mailto:sage [2007/10/06(土) 20:59:49 ]
- もうすぐ64ビットが当たり前になる時代にそんなオプション意味あるんか?
- 741 名前:仕様書無しさん mailto:sage [2007/10/06(土) 21:32:07 ]
- メモリの1バイトは血の一滴だ!
- 742 名前:仕様書無しさん mailto:sage [2007/10/06(土) 21:39:56 ]
- おしい
血より精液のほうが説得力あったのに
- 743 名前:仕様書無しさん mailto:sage [2007/10/06(土) 21:40:28 ]
- 初期化が保証されてても初期化、ということにはあまり文句は言わない
でも過保護言語のVBだし事情が違うのかな
- 744 名前:仕様書無しさん mailto:sage [2007/10/06(土) 21:43:52 ]
- 初期化で思い出したけど
MFCとかでポインタ先が破棄済みかどうかに( pTest )ってやってるの困る 解放後の0割り当てなんてコード全体で徹底するのか? いずれにせよMFC内部で delete this とかやるのあったらダメ
- 745 名前:仕様書無しさん mailto:sage [2007/10/06(土) 22:06:11 ]
- メモリ管理もろくに出来ない無能な人間のための言語というアピールはひしひしと感じる
便利だから使うんじゃない,それしか使えないんだ,てな
- 746 名前:仕様書無しさん mailto:sage [2007/10/06(土) 22:26:48 ]
- 管理以前にそもそもメモリの概念が分かっていません。
- 747 名前:仕様書無しさん mailto:sage [2007/10/06(土) 22:34:13 ]
- メモリの節約、スレッドの節約、etc...
- 748 名前:仕様書無しさん mailto:sage [2007/10/07(日) 00:07:44 ]
- 給料の節約、残業代の節約、etc...
- 749 名前:仕様書無しさん mailto:sage [2007/10/07(日) 00:10:42 ]
- >>744
> 内部で delete this とかやるのあったらダメ そうか?
- 750 名前:仕様書無しさん [2007/10/07(日) 03:47:54 ]
- >>725
相当に疑わしい人間だな。
- 751 名前:仕様書無しさん [2007/10/07(日) 07:16:38 ]
- > 解放後の0割り当てなんてコード全体で徹底するのか?
逆に delete して NULL 入れてないやつはぶっ殺したくなる
- 752 名前:仕様書無しさん mailto:sage [2007/10/07(日) 08:29:44 ]
- 自所持ポインタをNULLにしたところで
その参照先を他のやつもポインタで参照してたら・・・・そっちが自動でNULLになってくれるわけじゃないから NULL当てはめて安心するなんて無意味っちゃ無意味
- 753 名前:仕様書無しさん mailto:sage [2007/10/07(日) 09:22:50 ]
- 意味不明。
自ポインタで必要なくなった参照先は、他のやつでも必要なくなるって決め付けてるのか? そんなもん、プログラムのロジックによりけりだと思うが。他では保持する必要があるかもしれないし。 NULL当てはめて安心したいのは、処理が他の参照先に移ってるのに自ポインタが保持してるせいで 誤ってアクセスするというようなことを起こさないための防衛策もあるだろ。 「この会社辞めようと思った」の90%くらいは真実だと思うが、10%くらいは「辞めようと思った」奴の レベルが低すぎるんじゃないかと思うことがある。
- 754 名前:仕様書無しさん mailto:sage [2007/10/07(日) 09:53:34 ]
- 言ってることが全然分からんな。
よほど内部・詳細設計が腐っていると見える。
- 755 名前:仕様書無しさん mailto:sage [2007/10/07(日) 10:57:20 ]
- >>751
そんなことするのヘタクソだけだろ。
- 756 名前:仕様書無しさん mailto:sage [2007/10/07(日) 10:59:49 ]
- Javaで、1000行以上のメソッド(この時点でどうかとおもうが)を抜ける時に
一々オブジェクトにnullを入れて片付けているのを見たとき。 そんなどうでもいい気を使う前に、そのくそ長いメソッドを見直せと。
- 757 名前:仕様書無しさん mailto:sage [2007/10/07(日) 11:07:22 ]
- Javaは変数スコープ明確にしてGCに任せるだけだから楽だな
- 758 名前:仕様書無しさん mailto:sage [2007/10/07(日) 12:32:51 ]
- gcなんて訳の分からんもんによくお任せできるな
お前は通りすがりのオヤジに家の留守番を頼めるのか?
- 759 名前:仕様書無しさん mailto:sage [2007/10/07(日) 12:40:28 ]
- いや、javaは別にgc依存でいいんじゃないか?
そういう言語なんだし。
- 760 名前:仕様書無しさん mailto:sage [2007/10/07(日) 12:50:25 ]
- >>753
deleteした場合の話だろ?
- 761 名前:仕様書無しさん mailto:sage [2007/10/07(日) 13:00:12 ]
- 同じアドレスを共有しているポインタがあるのに delete するって
それだけで重大な設計ミスだな 所有権移行なら、delete せずに権限渡して 自分のポインタは NULL 設定とかする(auto_ptr がこうなってるな)し、 複製ならオブジェクトのコピーするだろ、普通 複数箇所で共有するなら、いいからスマートポインタ使っとけって話だし
- 762 名前:仕様書無しさん mailto:sage [2007/10/07(日) 13:06:13 ]
- >>757
スマートポインタも使わないのか? 参照カウンタだって立派なGCだが。
- 763 名前:仕様書無しさん mailto:sage [2007/10/07(日) 13:13:28 ]
- >>758
それを言い始めたらコンパイラも実行環境も何もかも信用できなくなるよ
- 764 名前:仕様書無しさん [2007/10/07(日) 13:42:04 ]
- ぬるぽ
- 765 名前:仕様書無しさん mailto:sage [2007/10/07(日) 13:48:08 ]
- お前らはデンマークの2流都市出身の禿や
カナダの糞田舎で育ったキモいオッサンの作った言語なんて信用できるのか?
- 766 名前:仕様書無しさん mailto:sage [2007/10/07(日) 14:02:00 ]
- malloc/freeのペアを使っていた時代は、freeの後にNULLは設定していたなー
論理的な異常処理とかでやむを得ず処理を終了する場合は、 ポインタ参照用変数がNULLじゃなけりゃ取りあえずfreeしまくってexitしていた。 まぁ、三つ子の魂百までじゃないけど、たまにそうコーディングして苦笑する事が最近はある。
- 767 名前:仕様書無しさん mailto:sage [2007/10/07(日) 14:07:25 ]
- 最初に疑うべきはいつの時代でも自分のコーディングだけどな!
- 768 名前:仕様書無しさん mailto:sage [2007/10/07(日) 14:34:45 ]
- ポインタをNULLクリアしなきゃならないコードの書き方を疑え。
- 769 名前:仕様書無しさん mailto:sage [2007/10/07(日) 15:01:04 ]
- >>763
どんなコンパイラも実行環境も最初は通りすがりのおっさん程度の信頼性しかないものだ。 それが大勢に使われて、もまれて、信頼できる警察官になるんだよ。
- 770 名前:仕様書無しさん mailto:sage [2007/10/07(日) 16:00:39 ]
- いまどき C++ で自分で delete 書いてる時点で何かおかしいと疑ったほうがいい。
std::auto_ptr, boost::scoped_ptr, boost::shared_ptr で全部済ませとけ。
- 771 名前:仕様書無しさん mailto:sage [2007/10/07(日) 16:12:58 ]
- boost の利用は標準に取り込まれてから考える
- 772 名前:仕様書無しさん mailto:sage [2007/10/07(日) 16:52:43 ]
- std::auto_ptr を delete 書くのを省くためだけに使うんだったら帯に短し襷に長しだな
- 773 名前:仕様書無しさん mailto:sage [2007/10/07(日) 17:17:30 ]
- >>772
へ?その目的で使ったら十分だと思うよ。 本人の意思とは関係なく例外安全性が付いてきたりするけど、別に余計なもんじゃないし。
- 774 名前:仕様書無しさん mailto:sage [2007/10/07(日) 17:32:33 ]
- まぁでもエラー処理とか例外安全とか一切考慮してないような自作スマートポインタクラスを使うのもなぁ〜
- 775 名前:仕様書無しさん mailto:sage [2007/10/07(日) 17:33:38 ]
- 普段ウォシュレットを使い慣れている奴はたまに駅の便所で拭かずにパンツを上げるらしい。
もしくは美味く拭けずに手にウンコ付けまくりんぐとか。 一番多いのが、ちゃんと拭いて流したつもりでも毛に残ったウンコでパンツが黄色いとかだな。
- 776 名前:仕様書無しさん mailto:sage [2007/10/07(日) 17:57:15 ]
- エクセルが信用できないので計算機で出した値を手入力してます
GCが信用できないので(ry
- 777 名前:仕様書無しさん mailto:sage [2007/10/07(日) 18:12:18 ]
- GCはいつインスタンスが破棄されるか分からんのでデストラクタ使い辛いのがなぁ・・・
- 778 名前:仕様書無しさん [2007/10/07(日) 18:33:56 ]
- ところでここはいつから"この会社辞めようと思った自分の一言"スレになったのですか?
- 779 名前:仕様書無しさん [2007/10/07(日) 18:41:25 ]
- >>778
知るか。どうでもいい事書くな!ヴぉけ
- 780 名前:仕様書無しさん mailto:sage [2007/10/07(日) 18:41:26 ]
- javaやC#も、スコープ抜けたら、デストラクタ(相当)がコールされる仕組みを作ってくれたらいいのに。
メモリ以外のリソースの開放がかえってめんどくさくなったな。
- 781 名前:仕様書無しさん mailto:sage [2007/10/07(日) 18:41:49 ]
- 1メソッドだらだら1000行とか書くやつは害虫としか思えん。
自分が辞めるよりそいつを駆除したほうがいいだろ普通。
- 782 名前:仕様書無しさん [2007/10/07(日) 18:51:41 ]
- >>780
javaならファイナライザがあるよ
- 783 名前:782 mailto:sage [2007/10/07(日) 18:52:39 ]
- と思ったけど動くタイミングが微妙だな
- 784 名前:仕様書無しさん [2007/10/07(日) 19:52:52 ]
- C++/CLIを使えばいいじゃない
- 785 名前:仕様書無しさん mailto:sage [2007/10/07(日) 20:00:32 ]
- >>775
普通はウンコ吹いてからウォシュレット使うでしょ
- 786 名前:仕様書無しさん mailto:sage [2007/10/07(日) 20:01:12 ]
- >>780
C#のusingでスコープ囲む奴じゃダメ?
- 787 名前:仕様書無しさん mailto:sage [2007/10/07(日) 20:04:38 ]
- >>785
最初にウォシュレットで残留物を洗い流してから、 紙に色が付かなくなるまでふきふきしてる。
- 788 名前:仕様書無しさん mailto:sage [2007/10/07(日) 20:13:15 ]
- >>786
usingでもいいけど、開放したいのが複数あったらネストが深くなるからね。 using (IDbConnection conn = new ・・・) { conn.Open(); using (IDbCommand cmd = conn.CreateCommand()) { cmd.CommandText = "・・・"; uding (IDbDataRedader reader = cmd.Execute・・・) { while (reader.Next()) { ・・・ } } } } C++/CLI や D みたいにやれたらいいのに。
- 789 名前:仕様書無しさん mailto:sage [2007/10/07(日) 20:15:33 ]
- >>787
それだと横に飛び散る様な気がするから俺は、>>785派
- 790 名前:仕様書無しさん mailto:sage [2007/10/07(日) 20:33:57 ]
- >>788
順序は無視して、単純に開放したいのが複数あるときは using( ... ) using( ... ) {} って出来たと思う。的外してたらすまんす。
- 791 名前:仕様書無しさん mailto:sage [2007/10/07(日) 20:58:01 ]
- exit(-1);
- 792 名前:仕様書無しさん mailto:sage [2007/10/07(日) 22:11:26 ]
- >>777
デストラクタは破棄される自分自身が保持してるものをアボンヌする「のみ」・・・のはずだから まぁタイミングなんて別にいいじゃん・・・・。いや実際処理入れられるけど、出来るけれど
- 793 名前:仕様書無しさん mailto:sage [2007/10/08(月) 00:04:26 ]
- 自分の持っているもののみを開放するのみとは言え、
class CFile { public: CFile() : m_fileptr(NULL) { } ~CFile() { Close(); } // まさに開放するのみ bool OpenForRead(const std::string &path); bool OpenForReadWrite(const std::string &path); void Close(); private: FILE *m_fileptr; }; CFile *file = new CFile(); file.OpenForReadWrite("/tmp/hoge"); // ここで GC の対象になったとして CFile *file = new CFile(); file.OpenForRead("/tmp/hoge"); OpenForReadWrite, OpenForRead は Reader-Writer Lock で flock かかるとして、 OpenForRead が成功するか失敗するかわからん、 というのが悩みどころなのでは。 いや、この場合は明示的に Close してやればいいんだけど。 # C/C++ しかわからんので C++ + GC という謎の物体でスマン
|

|