2009-08-09

http://anond.hatelabo.jp/20090809183815

提示したコードアレ過ぎ。

背景も知らないし調べもせずにそんなコードをとりあえず書き換えるならこんな感じ。

適当自分の好みを入れているのでツッコミ入れたくなる人もいるだろうけど。

int rc = RC_SUCCESS;
boost::shared_ptr<ObjA&gt; a = createA();
if (!a)
  rc = RC_ERROR1;
if (rc == RC_SUCCESS) {
  boost::shared_ptr<ObjB&gt; b = createB();
  if (!b)
    rc = RC_ERROR2;
}
return rc;

ちょっと言葉が汚いけど簡単に書くと

  • そこでgotoは要らないだろ
  • 型名がObjAとかObjBとかなにそれ?
  • int型でRC_なんちゃらじゃなくて列挙型使えよ(intでしょうがないか、というケースはあるけど)
  • createAとかcreateBってインスタンスを作っぽいけどそれで合ってる?その上でなんでそれを使ってないの?何をやりたいか分かり難いよ。設計おかしくない?
  • 最近pythonに手を出したおかげか、こんな時は例外を、と思う。 C++的にはどうなの?

  • ホント、アレげなコードでサーセン。 元々アレげなコードだがなぜか投稿が失敗するのでコード削ったら、 さらに何が言いたいコードかわからなくなった。 私がC++でコーディングする...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん