Don't use the GCC ternary syntax extension
It breaks MSVC compatibility, and is only useful when the expression has to be evaluated only once, which is not applicable here.
It breaks MSVC compatibility, and is only useful when the expression has to be evaluated only once, which is not applicable here.