c++ boost crc

c++ - ¿Cómo usar boost:: crc?



(5)

Quiero usar boost :: crc para que funcione exactamente como la función crc32 () de PHP . Intenté leer la horrible documentación y muchos dolores de cabeza después, no he progresado.

Aparentemente tengo que hacer algo como:

int GetCrc32(const string& my_string) { return crc_32 = boost::crc<bits, TruncPoly, InitRem, FinalXor, ReflectIn, ReflectRem>(my_string.c_str(), my_string.length()); }

bits deben ser 32 ... Lo que son las otras cosas es un misterio. ¿Un poco de ayuda? ;)


¿Has intentado usar el crc_32_type predefinido?


Dan Story y ergosys dieron buenas respuestas (al parecer estaba buscando en el lugar equivocado, es por eso que los dolores de cabeza), pero mientras tanto, quería proporcionar una solución de copiar y pegar para la función en mi pregunta para futuros usuarios de Google:

int GetCrc32(const string& my_string) { boost::crc_32_type result; result.process_bytes(my_string.data(), my_string.length()); return result.checksum(); }




Probablemente desee utilizar crc_32_type lugar de usar la plantilla crc. La plantilla es general y está pensada para acomodar una amplia gama de diseños de CRC que utilizan parámetros muy variables, pero envían cuatro tipos de CRC preconfigurados incorporados para uso común, que cubren CRC16, CCITT, XMODEM y CRC32.