On 11/1/2013 12:30 PM, Peter Dimov wrote:
Edward Diener wrote:
Also, in the build of clang with the VC++ iDE, the _HAS_EXCEPTIONS=0 define is being used extensively.
Judging by the compiler error, it appears that the standard library doesn't define std::exception at all when _HAS_EXCEPTIONS=0. Boost libraries do depend on std::exception as a base class for their own exception types even when exceptions are off, so its absence is likely to break a lot of things, not just <typeinfo>.
I agree with your analysis. In VC++ RTTI, aka typeinfo, cannot be used without std::exception support. But perhaps we can at least circumvent this in Boost.config by not including typeinfo for vc++ if RTTI is turned off, which seems reasonable. I will work with that scenario locally and see what happens next. If it is totally unrealistic trying to compile Boost libraries with clang on Windows if RTTI and exception handling are turned off, I will mention this on the clang developer's forum and post a bug report against it on clang bugzilla.