Boost logo

Boost :

Subject: [boost] Use macro varargs within BOOST_NOEXCEPT_IF
From: Daryle Walker (darylew_at_[hidden])
Date: 2012-02-03 11:25:37

I was going to ask about adding a BOOST_NOEXCEPT, but I just checked that the trunk already has it:
//---#ifdef BOOST_NO_NOEXCEPT#  define BOOST_NOEXCEPT#  define BOOST_NOEXCEPT_IF(Predicate)#  define BOOST_NOEXCEPT_EXPR(Expression) false#else#  define BOOST_NOEXCEPT noexcept#  define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))#  define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))#endif//---
If the compiler supports varargs in macros, should we have:
//===#  define BOOST_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)#  define BOOST_NOEXCEPT_EXPR(...) noexcept(__VA_ARGS__)//===
(I think that's the right syntax.) instead so comma expressions can be used within a noexcept without the extra parentheses?  But I doubt that it makes a difference here, since anything within the noexcept must be interpretable as a single expression.  (I think it does for decltype, though.  Extra parentheses turn a value type into a reference type(?).)
Daryle W.

Boost list run by bdawes at, gregod at, cpdaniel at, john at