Templated function is not able to multiply a value with -1 : <p>Watch at the following simple code, <br>
Compiling it with the command <code>g++ -std=c++14 -g -O2 CODE.cpp</code> <br> produces the strange Output : </p>

<p><code>Why this ?? -2147483648</code></p>

<pre><code># include&lt;bits/stdc++.h&gt;

using namespace std;

# define pc(x)    putchar(x)

template &lt;class T&gt;
inline void pd(T num, char ch = ' '){

   num = -num;
   cout &lt;&lt; "Why this ?? " &lt;&lt; num &lt;&lt; endl;

}

int main(void){

   pd(INT_MIN);

   return 0;
}
</code></pre>

<p>Please explain this behavior  !!</p>
