Opened 13 years ago
Closed 13 years ago
#3995 closed Patches (fixed)
array breaks with BOOST_NO_EXCEPTIONS and BOOST_EXCEPTION_DISABLE
Reported by: | Owned by: | Marshall Clow | |
---|---|---|---|
Milestone: | Boost 1.43.0 | Component: | array |
Version: | Boost 1.42.0 | Severity: | Problem |
Keywords: | array BOOST_NO_EXCEPTIONS BOOST_EXCEPTION_DISABLE | Cc: |
Description
I am using boost in the TI Code composer studio environment for an embedded platform which is does not support exceptions. I have therefore had to define BOOST_NO_EXCEPTIONS and BOOST_EXCEPTION_DISABLE to compile with boost::array, BUT I have also had to fix a bug in the use of exceptions.
On line 171 in array.hpp there is a std::out_of_range exception thrown using the throw statement. This causes an error due to exceptions not being defined.
Further down in the partial specialisation for zero sized arrays, on lines 285-286 another exception is created and thrown using boost::throw_exception. This does not cause an error. The patch therefore is to allow boost::array to be compiled without errors with exceptions disabled.
-171 throw std::out_of_range("array<>: index out of range"); +171 std::out_of_range e("array<>: index out of range"); +172 boost::throw_exception(e);
It may be more useful to consider putting #ifdef BOOST_NO_EXCEPTIONS around rangecheck(...) to ensure that the function does not get called with BOOST_NO_EXCEPTION, because it will not have any effect.
Ps. should I have to be defining BOOST_EXCEPTION_DISABLE??
Change History (4)
comment:1 by , 13 years ago
Component: | None → array |
---|---|
Keywords: | array BOOST_NO_EXCEPTIONS BOOST_EXCEPTION_DISABLE added |
Owner: | set to |
Type: | Bugs → Patches |
comment:2 by , 13 years ago
Owner: | changed from | to
---|
comment:3 by , 13 years ago
Status: | new → assigned |
---|
comment:4 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Migrated to release branch in revision 60824
I have updated the trunk as of revision #60417. After the tests have cycled a few times, I will merge to the release branch.