C++ では、次のように if ステートメントで変数を初期化できます。
if (CThing* pThing = GetThing())
{
}
なぜこのスタイルが悪い、または良いと考えるのでしょうか? 利点と欠点は何ですか?
pThing 変数のスコープを制限し、NULL のときに誤って使用されることがないため、個人的にはこのスタイルが気に入っています。ただし、これができないのは好きではありません。
if (CThing* pThing = GetThing() && pThing->IsReallySomeThing())
{
}
上記の作業を行う方法があれば、投稿してください。しかし、それが不可能な場合でも、その理由を知りたいです。