Why is this a floating point exception?
<p>Today I was tracking down a floating point exception in some code I had just written. It took a little while to find because it was actually caused by taking an integer mod zero. Obviously doing anything mod zero is not going to be defined but I thought it was strange that the error was so misleading. What is it within the C++ modulo operator that would use floating point for two integers? (I'm using gcc 4.3.2)</p>

<p>Here's a simple program to demonstrate the error.</p>

<pre><code>int main()
{
    int a=3,b=0;
    int c=a%b;
    return 0;
}
</code></pre>
