bool bGood = false, var; if(auto result = doSomething( &bGood ); bGood && !result.empty() && (var = static_cast<bool>(result)) ) { // Do something with var }