...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
namespace boost { typedef crc_optimal<16, 0x8005, 0, 0, true, true> crc_16_type; typedef crc_optimal<16, 0x1021, 0xFFFF, 0, false, false> crc_ccitt_false_t, crc_ccitt_type; typedef crc_optimal<16, 0x1021, 0, 0, true, true> crc_ccitt_true_t; typedef crc_optimal<16, 0x8408, 0, 0, true, true> crc_xmodem_type; typedef crc_optimal<16, 0x1021, 0, 0, false, false> crc_xmodem_t; typedef crc_optimal<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true> crc_32_type; }
Several sample CRC types are given, representing common CRC algorithms. The samples have now been checked against the Catalogue of parametrised CRC algorithms, leading to some new type-aliases corresponding to the corrected profiles. (Older, incorrect profiles keep their name for backwards compatibility.) However, this library is primarily concerned with CRC implementation, and not with determining "good" sets of CRC parameters.
Table 10.4. Common CRCs
Computer Type |
Standard(s) |
---|---|
|
BISYNCH, ARC, LHA, ZOO |
|
Commonly misidentified as the standard by CCITT |
|
|
|
Designated by CCITT (Comité Consultatif International Télégraphique et Téléphonique), KERMIT |
|
A mistake I didn't catch in defining |
|
XMODEM, ZMODEM, ACORN |
|
ADCCP, PKZip, libPNG, AUTODIN II, Ethernet, FDDI |