|
Boost : |
From: John Maddock (John_Maddock_at_[hidden])
Date: 2001-05-10 05:55:58
Daryle,
Unfortunately crc version 20 didn't build with any of the compilers I have
access to, I've attached a modified version (along with a diff) that builds
and runs cleanly on VC6, gcc 2.95, and C++ Builder 5.1.
Main changes:
C++ Builder:
Requires an initialiser list for "crc_table_t<Bits, TruncPoly,
Reflect>::table_", I don't understand this, but whatever it won't compile
the code without it (actually it will, but only if you turn off inline
expansions), in any case the initialiser does no harm.
gcc:
Internal compiler error over your function pointer usage in the test
program - I've reverted to a regular function call, and removed the
function pointer code.
VC6:
Also would not compile the function pointer code. You were correct about
the cause of the outstanding VC6 problem: when VC6 mangles function names
it does not include template parameter types - only function parameter
types. As a result if you use more than one instance of boost::crc or
boost::augmented_crc in the same program, the code will fail at run time.
I've fixed this by adding an extra defaulted parameter to the crc and
augmented_crc functions for VC6 builds only, it ain't pretty but it does
work!
VC6 + STLPort
Doesn't build due to problems with <limits>, there are workarounds but
these need to be applied to integer.hpp as much as your code, suggest we
ignor this for now.
Daryle, if you are happy with the changes, then this looks ready to add to
the cvs repository now: if anyone else wants to jump in with more
fixes/comments please do!
- John Maddock
http://ourworld.compuserve.com/homepages/john_maddock/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk