Assuming that BufferLenght is >=0 and *Buffer is a valid buffer will the following code generate exceptions? What about if Buffer is invalid? Are there any cases where it can generate exceptions and how to handle them?
unsigned CRC32(const void *Buffer, unsigned BufferLength)
{
boost::crc_32_type result;
result.process_bytes(Buffer, BufferLength);
return result.checksum();
}
Boost CRC looks to be exception neutral.