>>579
激烈に同意

>>573
withはいらね。
どうしても欲しいなら
#define with(exp) if(exp)
とでも汁

with( hoge* obj = 長ったらしい式 )
{
 obj->...;
 obj->...;
}
else
{
 nullだったときのエラー処理。
}

みたいに書けるぞ。

nullのときは自動的に処理をスキップできるうえきれいな構文でエラー処理できる、オブジェクト名にコンテキストにふさわしい名前を自分で選べるし、入れ子も可能だ。
操作対象を毎行明示するので可読性も損なわれない。