>>36
if文を使って成功したかどうか判定するんだから、そういう風に作ることも出来る。

構造体へのポインタを返すのでも同じ事が出来るけど。
if (auto p = foo()) {
printf("%d\n", p->value);
}
とか
auto p = foo();
if(!succeed(p)) {
return;
}
とか。