悪意を感じるC++コード

初心者の間違いとは違う。

明らかに悪意が感じられるコードをご紹介します。



case 1 カプセル化の破壊

#define private public
#define protected public
・・・


defineは国境を越えて・・・







case 2 プリミティブ型の破壊

#define bool int

気持ちは分かるが、せめてtypedefに・・・

case 3 なんでもキャッチ&リリース

try {
・・・
}
catch {
  // nothing to do
}

やることないなら私にcatchのチャンスをください。
Access Violation(SEH)まで捨てられます。

# VC++は危険度アップ。

Leave a Reply

4 コメント - "悪意を感じるC++コード"

更新通知を受け取る »
avatar
並び替え:   新しい順 | 古い順 | 最も評価の多い
水無瀬
ゲスト

全て見たことあります(苦笑
case 3 はコメントつきで
 try{
 ・・・
 }catch{ // これがないと正しく動作しない
 }
って感じだったと記憶しています。
 『これがないと正しく動作しない』って、あンた。
それは何かが違うと思います。
正しく動いていないから『それ』が必要なのだと思います。
確か呼出規約が間違っていたというオチだったと思いますが。

konuma
ゲスト

> // これがないと正しく動作しない
「本では」それで見たんです!
しかし、私が「実際の製品のコード」でみたのは上記の3パターンでした。
例外をばんばん飛ばしているのですが、このcatchがあるために下手に生き長らえてしまうわけで。
そのコードを2ヶ月でメンテしろと言われたときは、「捨てた方が速い」というレポートを送付しました。

水無瀬
ゲスト

>「本では」それで見たんです!
そんなコードまで載せてる本があるのか。
もちろん悪いコードの例として載ってるんだよね?
ちなみに、私が実際のコードで見た case 3 は見事に上記のコメントつきでした。
case 3 だけはすぐに直しておきましたが case 1 と 2 は直した覚えがないです。
case 1 は面倒すぎて直しようがないですよ。

konuma
ゲスト

>もちろん悪いコードの例として載ってるんだよね?
そもそもが救いようが無いコードとして載ってたような。記事を書くのに出典として探していたんだけどない。
違った意味で面白いのはご存知ioccc。
http://www.ioccc.org/
数年みないうちに目的が変わってる気がしますが・・・。

wpDiscuz