|
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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk