[config] Macro BOOST_NO_NOEXCEPT is required

http://thread.gmane.org/gmane.comp.lib.boost.devel/214978 I think the macro BOOST_NO_NOEXCEPT ( or BOOST_NO_0X_NOEXCEPT ) is required soon. How's the status now?

On Sat, Apr 23, 2011 at 11:57 AM, Takaya Saito (SubaruG) <gintensubaru@gmail.com> wrote:
http://thread.gmane.org/gmane.comp.lib.boost.devel/214978
I think the macro BOOST_NO_NOEXCEPT ( or BOOST_NO_0X_NOEXCEPT ) is required soon. How's the status now?
The semantics of throw() and noexcept are not identical. Also, the semantics of throw() are not identical on all platforms. Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode

On Sun, Apr 24, 2011 at 2:43 PM, Emil Dotchevski <emildotchevski@gmail.com> wrote:
On Sat, Apr 23, 2011 at 11:57 AM, Takaya Saito (SubaruG) <gintensubaru@gmail.com> wrote:
http://thread.gmane.org/gmane.comp.lib.boost.devel/214978
I think the macro BOOST_NO_NOEXCEPT ( or BOOST_NO_0X_NOEXCEPT ) is required soon. How's the status now?
The semantics of throw() and noexcept are not identical. Also, the semantics of throw() are not identical on all platforms.
I think the OP may have been asking for a macro to indicate that "noexcept" isn't available. That's one issue. OTOH, I think we do need a couple of macros to apply noexcept to functions if available. I'm leaning toward BOOST_NOEXCEPT() and BOOST_NOEXECPT_IF(Predicate) You are right that such a macro shouldn't be used to blindly replace "throw()" or even "Throws nothing", although the standard library has been able to replace throw() in most cases. Guidelines for when and when not to use noexcept should probably follow those used for the standard library. See the beginning of http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3279.pdf, Conservative use of noexcept in the Library. Unfortunately, those guidelines were hurriedly written to meet the FDIS deadline, and aren't as clear as they could be with a bit of careful editing. They are also missing some of the actual guidelines used for the standard library, such as not using conditional nothrow if the condition is even slightly complex. --Beman

2011/4/25 Emil Dotchevski <emildotchevski@gmail.com>:
On Sat, Apr 23, 2011 at 11:57 AM, Takaya Saito (SubaruG) <gintensubaru@gmail.com> wrote:
http://thread.gmane.org/gmane.comp.lib.boost.devel/214978
I think the macro BOOST_NO_NOEXCEPT ( or BOOST_NO_0X_NOEXCEPT ) is required soon. How's the status now?
The semantics of throw() and noexcept are not identical. Also, the semantics of throw() are not identical on all platforms.
Yes, that's right. And I don't need a macro expanding to throw() or noexcept(true) so soon. But, I think a macro BOOST_NO_NOEXCEPT, which describes the presence of noexcept keyword, is required ASAP.

Message du 25/04/11 10:35 De : "Takaya Saito (SubaruG)" A : boost@lists.boost.org Copie à : Objet : Re: [boost] [config] Macro BOOST_NO_NOEXCEPT is required
2011/4/25 Emil Dotchevski :
On Sat, Apr 23, 2011 at 11:57 AM, Takaya Saito (SubaruG) wrote:
http://thread.gmane.org/gmane.comp.lib.boost.devel/214978
I think the macro BOOST_NO_NOEXCEPT ( or BOOST_NO_0X_NOEXCEPT ) is required soon. How's the status now?
The semantics of throw() and noexcept are not identical. Also, the semantics of throw() are not identical on all platforms.
Yes, that's right. And I don't need a macro expanding to throw() or noexcept(true) so soon.
But, I think a macro BOOST_NO_NOEXCEPT, which describes the presence of noexcept keyword, is required ASAP.
Hi, I·m sure Johm will be happy to accept a patch with the tests and the docs if you follow the procedure described in the documentation for the addition of new macros. In this way the macro will be included as soon as you want ;-) Best, Vicente

2011/4/25 Vicente BOTET <vicente.botet@wanadoo.fr>:
Message du 25/04/11 10:35 De : "Takaya Saito (SubaruG)" A : boost@lists.boost.org Copie à : Objet : Re: [boost] [config] Macro BOOST_NO_NOEXCEPT is required
2011/4/25 Emil Dotchevski :
On Sat, Apr 23, 2011 at 11:57 AM, Takaya Saito (SubaruG) wrote:
http://thread.gmane.org/gmane.comp.lib.boost.devel/214978
I think the macro BOOST_NO_NOEXCEPT ( or BOOST_NO_0X_NOEXCEPT ) is required soon. How's the status now?
The semantics of throw() and noexcept are not identical. Also, the semantics of throw() are not identical on all platforms.
Yes, that's right. And I don't need a macro expanding to throw() or noexcept(true) so soon.
But, I think a macro BOOST_NO_NOEXCEPT, which describes the presence of noexcept keyword, is required ASAP.
Hi,
I·m sure Johm will be happy to accept a patch with the tests and the docs if you follow the procedure described in the documentation for the addition of new macros.
I tried to write the patch, but I couldn't understand how to generate `no_noexcept_pass.cpp` and `no_noexcept_fail.cpp`, so I've only written `boost_no_noexcept.ipp` for tests. If it's okay, here's the patch attached, please use it freely.

2011/4/26 Takaya Saito (SubaruG) <gintensubaru@gmail.com>:
2011/4/25 Vicente BOTET <vicente.botet@wanadoo.fr>:
Message du 25/04/11 10:35 De : "Takaya Saito (SubaruG)" A : boost@lists.boost.org Copie à : Objet : Re: [boost] [config] Macro BOOST_NO_NOEXCEPT is required
2011/4/25 Emil Dotchevski :
On Sat, Apr 23, 2011 at 11:57 AM, Takaya Saito (SubaruG) wrote:
http://thread.gmane.org/gmane.comp.lib.boost.devel/214978
I think the macro BOOST_NO_NOEXCEPT ( or BOOST_NO_0X_NOEXCEPT ) is required soon. How's the status now?
The semantics of throw() and noexcept are not identical. Also, the semantics of throw() are not identical on all platforms.
Yes, that's right. And I don't need a macro expanding to throw() or noexcept(true) so soon.
But, I think a macro BOOST_NO_NOEXCEPT, which describes the presence of noexcept keyword, is required ASAP.
Hi,
I·m sure Johm will be happy to accept a patch with the tests and the docs if you follow the procedure described in the documentation for the addition of new macros.
I tried to write the patch, but I couldn't understand how to generate `no_noexcept_pass.cpp` and `no_noexcept_fail.cpp`
I've succeeded in generating and testing them, so here's the patch on http://svn.boost.org/svn/boost/trunk at revision 71717, including changes at the previous patch.

I·m sure Johm will be happy to accept a patch with the tests and the docs if you follow the procedure described in the documentation for the addition of new macros.
I tried to write the patch, but I couldn't understand how to generate `no_noexcept_pass.cpp` and `no_noexcept_fail.cpp`
I've succeeded in generating and testing them, so here's the patch on http://svn.boost.org/svn/boost/trunk at revision 71717, including changes at the previous patch.
Thanks! Patch applied to Trunk, John.
participants (5)
-
Beman Dawes
-
Emil Dotchevski
-
John Maddock
-
Takaya Saito (SubaruG)
-
Vicente BOTET