||A SNaN is a concept defined by the IEEE standard. It is up to languages and/or compilers, whether and how they implement it.
In C++, if you divide a "double x;" by 0.0, the possible results are:
+inf, if x is positive
-inf, if x is negative
QNaN, if x is 0.0
I'm not really sure whether C++ implements SNaNs properly, I tend to think that it doesn't.
As of the "integer division" part of your posts, I really can't understand what are you trying to achieve. Maybe you could be more specific?