Index: boost/exception/info.hpp =================================================================== --- boost/exception/info.hpp (revision 63101) +++ boost/exception/info.hpp (working copy) @@ -17,6 +17,7 @@ #include #include #include +#include #include namespace @@ -192,6 +193,15 @@ { return exception_detail::set_info(x,v); } + +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x621) ) + // Workaround to avoid a Borland/CodeGear error, "Error E2316: 'data_' is not + // a member of 'ostream' in function set_info(...)" + template + inline + char + operator<<( ::std::ostream const & , ::boost::error_info const & ); +#endif } #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) Index: libs/exception/test/enable_error_info_test.cpp =================================================================== --- libs/exception/test/enable_error_info_test.cpp (revision 63101) +++ libs/exception/test/enable_error_info_test.cpp (working copy) @@ -8,9 +8,17 @@ #include #include #include +#include namespace { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x621) ) + // Working around a compiler bug reported at Embarcadero C++Builder Report #85504, + // "typeid (pointer to incomplete type) triggers link error: Unresolved external" + // http://qc.embarcadero.com/wc/qcmain.aspx?d=85504 + struct tag_test_int {}; +#endif + typedef boost::error_info test_int; void