// on the CRC's bit count. This macro expresses that type in a compact
// form, but also allows an alternate type for compilers that don't support
// dependent types (in template value-parameters).
-#ifndef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#if !(defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || (defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)))
#define BOOST_CRC_PARM_TYPE typename ::boost::uint_t<Bits>::fast
#else
#define BOOST_CRC_PARM_TYPE unsigned long
typedef typename base_type::least least;
typedef typename base_type::fast fast;
-#ifdef __DECCXX
- static const least high_bit = 1ul << (Bits - 1u);
- static const fast high_bit_fast = 1ul << (Bits - 1u);
-#else
BOOST_STATIC_CONSTANT( least, high_bit = (least( 1u ) << ( Bits
- 1u )) );
BOOST_STATIC_CONSTANT( fast, high_bit_fast = (fast( 1u ) << ( Bits
- 1u )) );
-#endif
}; // boost::detail::high_uint_t
BOOST_STATIC_CONSTANT( fast, high_bit_fast = base_type::high_bit_fast );
#endif
-#ifdef __DECCXX
- static const least sig_bits = (~( ~(0ul) << Bits));
-#else
BOOST_STATIC_CONSTANT( least, sig_bits = (~( ~(least( 0u )) << Bits )) );
-#endif
BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
}; // boost::detail::mask_uint_t
typedef mask_uint_t<Bits> masking_type;
typedef typename masking_type::fast value_type;
+#if defined(__BORLANDC__) && defined(_M_IX86) && (__BORLANDC__ == 0x560)
+ // for some reason Borland's command line compiler (version 0x560)
+ // chokes over this unless we do the calculation for it:
+ typedef value_type table_type[ 0x100 ];
+#else
typedef value_type table_type[ byte_combos ];
+#endif
static void init_table();
#endif // BOOST_CRC_HPP
+