Boost logo

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