|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-04-30 06:45:19
From: "Daryle Walker" <darylew_at_[hidden]>
> John Maddock mentioned that the problems with the Boost.CRC code has with
MS
> VC++ may be from that compiler not handling value-based template arguments
> in function templates correctly. He suggested using a static member
> function in a class template instead. We should have warnings about that
in
> config.hpp. How about:
>
> BOOST_NO_VALUE_BASED_ARGUMENT_IN_FUNCTION_TEMPLATE
The problem is not related to the argument being non-type. Note that in:
template < std::size_t Bits >
typename boost::uint_t<Bits>::fast
reflect( typename boost::uint_t<Bits>::fast x );
'Bits' is not mentioned anywhere in the function argument list
(boost::uint_t<Bits>::fast is a typedef for a built-in type.)
This is a known limitation of the MSVC linker (fixed in 7.0b1) and also
affects Intel C++ 5.0 (it uses the same name mangling scheme.)
The same limitation applies to type arguments:
template<class T> void f();
-- Peter Dimov Multi Media Ltd.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk