Type-punning

Sergei Organov osv@javad.com
Fri Jun 22 13:41:00 GMT 2007


Herman Geza <hg211@hszk.bme.hu> writes:

[...]

> What is the correct way to do this:
>
> void setNaN(float &v) {
> 	reinterpret_cast<int&>(v) = 0x7f800001;
> }
>
> without a type-prunning warning?  I cannot use the union trick here

Why? Won't the following work?

void setNaN(float &v) {
  union { float f; int i; } t;
  t.i = 0x7f800001;
  v = t.f;
}

-- Sergei.



More information about the Gcc mailing list