I want to create an if
where a variable is declared, assigned and checked. If the variable's value is acceptable, I want to use it inside if
body. Here's an example of how I thought I could do that:
if ((int result = Foo()) != 0) {
// use result
}
I assumed that Foo()
returns some value, which is assigned to result
, and returned by assignment operator =
, and finally checked against 0
in != 0
. Unfortunately, it results in a compilation error:
main.cpp:31:10: error: expected primary-expression before ‘int’
if ((int i = Foo()) != 0)
^
main.cpp:31:10: error: expected ‘)’ before ‘int’
Why is this error happening? And what ways could there be to fix it?