I'm compiling some code that uses crc.hpp. On windows (VS2003) it works fine. On Solaris 8 (Sun Studio 8), I get the following error. (offending code included below)
Assertion: unhandled expression in abi2_mangler::entity_expression (../lnk/v2mangler.cc, line 1584)
while processing /.../boost/crc.hpp at line 57.
If I delete lines 47-58, I get the same error on line 45. If I delete
lines 41-59, I get the same error on line 39 which is a comment. A
google search turns up a thread in sun's forums dealing with a bug in
the Forte 7 compiler. However, that only showed up when compiling with
-g so I removed the -g from my compile line and still get the error. Has
anyone else seen this?
36 // workaround is to make up a dummy function argument that encodes
the template
37 // arguments. Calls to such template functions need all their
template
38 // arguments explicitly specified. At least one compiler that needs
this
39 // workaround also needs the default value for the dummy argument to
be
40 // specified in the definition.
41 #if defined(__GNUC__) ||
!defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)
42 #define BOOST_CRC_DUMMY_PARM_TYPE
43 #define BOOST_CRC_DUMMY_INIT
44 #define BOOST_ACRC_DUMMY_PARM_TYPE
45 #define BOOST_ACRC_DUMMY_INIT
46 #else
47 namespace boost { namespace detail {
48 template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
49 BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
50 bool ReflectIn, bool ReflectRem >
51 struct dummy_crc_argument { };
52 } }
53 #define BOOST_CRC_DUMMY_PARM_TYPE ,
detail::dummy_crc_argument