Boost logo

Boost Users :

From: Ben Hutchings (ben.hutchings_at_[hidden])
Date: 2005-03-07 09:59:27


Roman Morokutti wrote:
> Hi,
>
> I am not able to compile function_base.hpp at lines
> 595(55), 607(55), 616(55), 625(55).
>
> Error E2437 D:\boost\boost_1_32_0\boost/function/function_base.hpp
> 598(55): 'typename' should be followed by a qualified, dependent type name

This happens because these templates depend on the rule that
"specialisation failure is not an error" (SFINAE) to limit their use,
but Borland C++ does not implement that rule correctly.

> Does anyone know a workaround for this?

There is a workaround in that file that should be used if
BOOST_NO_SFINAE is defined, which it should be when you compile with
Borland C++. <boost/config/compiler/borland.hpp> has:

#if (__BORLANDC__ <= 0x564)
# define BOOST_NO_SFINAE
#endif

which seems to imply that it is assumed to work in newer versions than
5.6.4 (?). If you have a newer version in which SFINAE still is not
implemented then perhaps you should edit this version check.

Ben.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net