On 09/09/2017 16:50, James E. King, III via Boost wrote:
BOOST_ASSERT_ASSIGN_OR_IGNORE(std::codecvt_base::result r) m_codecvt_facet.out( m_mbs, & value, & value + 1, wend, m_buffer, m_buffer + sizeof(m_buffer), bend ); BOOST_ASSERT(std::codecvt_base::ok == r);
where BOOST_ASSERT_ASSIGN_OR_IGNORE would expand to, assuming BOOST_ASSERT_ACTIVE is an indicator whether assert code is compiled in:
#if BOOST_ASSERT_ACTIVE std::codecvt_base::result r = #else (void) #endif
This would allow me to eliminate the warning without submitting a PR that changes the behavior of the code. If something like this does not exist, would it be useful for me to add it to boostorg/assert, or would folks recommend against encouraging this behavior and instead change it to use exceptions?
I unconditionally write (void)r in my code after the assertion, and that shuts the compiler. If you need to do more complicated things when the assert is or not active, then use BOOST_ASSERT_IS_VOID: http://www.boost.org/doc/libs/1_65_1/libs/assert/doc/html/assert.html#boost_... Ion