This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFC: Add _GLIBCXX_NOEXCEPT_C macro for conditional noexcept


I keep considering making this change:

--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -117,10 +117,12 @@
#  define _GLIBCXX_NOEXCEPT noexcept
#  define _GLIBCXX_USE_NOEXCEPT noexcept
#  define _GLIBCXX_THROW(_EXC)
+#  define _GLIBCXX_NOEXCEPT_C(_CONSTANT) noexcept(_CONSTANT)
# else
#  define _GLIBCXX_NOEXCEPT
#  define _GLIBCXX_USE_NOEXCEPT throw()
#  define _GLIBCXX_THROW(_EXC) throw(_EXC)
+#  define _GLIBCXX_NOEXCEPT_C(_CONSTANT)
# endif
#endif


It would allow code like this:

   basic_string()
 #if __cplusplus >= 201103L
   noexcept(is_nothrow_default_constructible<_Alloc>::value)
 #endif

to be replaced with this:

   basic_string()
   _GLIBCXX_NOEXCEPT_C(is_nothrow_default_constructible<_Alloc>::value)

But I can't decide if that's really an improvement.

Does anyone else have an opinion?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]