[exception] enable_error_info.hpp compile errors

Boost.Filesystem's wide_test is failing on trunk due to enable_error_info.hpp compile errors. It's happening with many (or maybe all) compilers. See below for typical error messages. --Beman ..\boost/exception/enable_error_info.hpp(23): error: not a class or struct name public T, ^ detected during: instantiation of class "boost::exception_detail::error_info_injector<T> [with T=char [29]]" at line 90 instantiation of "boost::exception_detail::enable_error_info_return_type<T>::type boost::enable_error_info(const T &) [with T=char [29]]" at line 58 of "..\boost/throw_exception.hpp" instantiation of "void boost::throw_exception(const E &) [with E=char [29]]" at line 114 of "..\libs\filesystem\test\wide_test.cpp" ..\boost/exception/enable_error_info.hpp(28): error: "T" is not a nonstatic data member or base class of class "boost::exception_detail::error_info_injector<char [29]>" T(x) ^ detected during: instantiation of "boost::exception_detail::error_info_injector<T>::error_info_injector(const T &) [with T=char [29]]" at line 95 instantiation of "boost::exception_detail::enable_error_info_return_type<T>::type boost::enable_error_info(const T &) [with T=char [29]]" at line 58 of "..\boost/throw_exception.hpp" instantiation of "void boost::throw_exception(const E &) [with E=char [29]]" at line 114 of "..\libs\filesystem\test\wide_test.cpp"

Beman Dawes:
Boost.Filesystem's wide_test is failing on trunk due to enable_error_info.hpp compile errors. It's happening with many (or maybe all) compilers. See below for typical error messages.
...
instantiation of "void boost::throw_exception(const E &) [with E=char [29]]" at line 114 of "..\libs\filesystem\test\wide_test.cpp"
boost::throw_exception( x ) has always had an implicit requirement that x needs to derive from std::exception (because it's declared as taking std::exception const& as an argument when BOOST_NO_EXCEPTIONS is defined). This requirement wasn't enforced though. We are enforcing it now, hence the error.

Peter Dimov wrote:
Beman Dawes:
Boost.Filesystem's wide_test is failing on trunk due to enable_error_info.hpp compile errors. It's happening with many (or maybe all) compilers. See below for typical error messages.
...
instantiation of "void boost::throw_exception(const E &) [with E=char [29]]" at line 114 of "..\libs\filesystem\test\wide_test.cpp"
boost::throw_exception( x ) has always had an implicit requirement that x needs to derive from std::exception (because it's declared as taking std::exception const& as an argument when BOOST_NO_EXCEPTIONS is defined). This requirement wasn't enforced though. We are enforcing it now, hence the error.
OK. Thanks, --Beman
participants (2)
-
Beman Dawes
-
Peter Dimov