11 Feb
2010
11 Feb
'10
5:06 p.m.
Steven, I know at least 2 books which describe this possibility and there is nothing stated about undefined behavior. I just double checked the ISO 2003 C++ Standards and did not find anything which disallows the presented approach. Can you point me to the paragraph in the Standard? Thanks, Ovanes
Seems, like I forgot the signature... Another way to transfer the bytes would be:
union bytes2seed { uint64_t seed_; char bytes_[sizeof(uint64_t)]; };
bytes2seed converter;
Now one can pass &converter.bytes_[0] to CryptGenRandom. This does not require an additional memcpy call.
Casting through a union is undefined behavior. :(.