[Exception] SFINAE use breaks Borland in Trunk

Boost.Exception is currently failing for Borland compiles with for example: http://tinyurl.com/ycu779q The issue appears to be use of SFINAE like techniques without a BOOST_NO_SFINAE fallback. The problem here is that since Boost.Exception gets pulled in by almost everything, we need it to be lightweight and well supported, otherwise the rest of us are stuck even if we want to continue to support the older compilers :-( Thanks! John.

On Tue, Nov 24, 2009 at 2:27 AM, John Maddock <john@johnmaddock.co.uk> wrote:
Boost.Exception is currently failing for Borland compiles with for example: http://tinyurl.com/ycu779q
The issue appears to be use of SFINAE like techniques without a BOOST_NO_SFINAE fallback.
The problem here is that since Boost.Exception gets pulled in by almost everything, we need it to be lightweight and well supported, otherwise the rest of us are stuck even if we want to continue to support the older compilers :-(
The only part of Boost.Exception that is pulled in by almost all Boost source files that throw exceptions is boost/throw_exception.hpp. It is very lightweight and works on all compilers (including Borland), at least to the extend of being able to call boost::throw_exception to throw. With the rest of Boost.Exception, Borland has many issues. Of course, I am not against supporting that compiler, I would certainly accept patches to that effect. There are two headers that should be modified with extreme care, boost/throw_exception.hpp and boost/exception/exception.hpp. As it stands, boost/throw_exception.hpp only includes <exception>, boost/detail/workaround.hpp, and boost/exception/exception.hpp (which does not include anything.) I would prefer to keep it this way precisely because it is used by all exception throwing code in Boost. Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode

The issue appears to be use of SFINAE like techniques without a BOOST_NO_SFINAE fallback.
The problem here is that since Boost.Exception gets pulled in by almost everything, we need it to be lightweight and well supported, otherwise the rest of us are stuck even if we want to continue to support the older compilers :-(
The only part of Boost.Exception that is pulled in by almost all Boost source files that throw exceptions is boost/throw_exception.hpp. It is very lightweight and works on all compilers (including Borland), at least to the extend of being able to call boost::throw_exception to throw.
With the rest of Boost.Exception, Borland has many issues. Of course, I am not against supporting that compiler, I would certainly accept patches to that effect.
Maybe this is a Boost.Test issue then, because that's where the failure occurs, which means we can't actually test anything with this compiler :-( John.

On Tue, Nov 24, 2009 at 4:13 AM, John Maddock <john@johnmaddock.co.uk> wrote:
The issue appears to be use of SFINAE like techniques without a BOOST_NO_SFINAE fallback.
The problem here is that since Boost.Exception gets pulled in by almost everything, we need it to be lightweight and well supported, otherwise the rest of us are stuck even if we want to continue to support the older compilers :-(
The only part of Boost.Exception that is pulled in by almost all Boost source files that throw exceptions is boost/throw_exception.hpp. It is very lightweight and works on all compilers (including Borland), at least to the extend of being able to call boost::throw_exception to throw.
With the rest of Boost.Exception, Borland has many issues. Of course, I am not against supporting that compiler, I would certainly accept patches to that effect.
Maybe this is a Boost.Test issue then, because that's where the failure occurs, which means we can't actually test anything with this compiler :-(
Where does the failure occur? The tests that must (and do) pass on all platforms and compilers are the top four lines in the Boost.Exception test matrix: http://www.boost.org/development/tests/trunk/developer/exception.html. Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode

In article <6914AD9907314A578204F00E2C69E265@acerlaptop>, "John Maddock" <john@johnmaddock.co.uk> wrote:
Maybe this is a Boost.Test issue then, because that's where the failure occurs, which means we can't actually test anything with this compiler :-(
Boost.Test broke pretty badly for the borland toolchain in the 1_40_0 release. I've been trying to figure it out but haven't had much time lately. -- -David
participants (3)
-
Emil Dotchevski
-
John Maddock
-
siliconman