title: C/C++ Negating a integer type variable with a value of 0
body: <p>I want to pass the sign changed version of some value to a function. I know how to check for overflow if the sign changes however I don't know about this one case.</p>
  
  <pre><code>int apple( int );
  
  int a = 0;
  
  apple( -a );
  </code></pre>
  
  <p>Is that defined behavior covered by the C/C++ standard? I'm passing -0 I would guess when a == 0. What about using something like this instead: <code>a ? -a : a</code> ? Thanks</p>