treewide: avoid use of unsupported C++ specifiers

constexpr and noexcept were introduced as specifiers in C++11.  Avoid
referencing them when compiling for earlier versions of the language.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
This commit is contained in:
Peter A. Bigot 2019-12-13 04:27:44 -06:00 committed by Maureen Helm
commit 6ade720851
2 changed files with 14 additions and 5 deletions

View file

@ -50,7 +50,10 @@
#if defined(__cplusplus) #if defined(__cplusplus)
template < class T, size_t N > template < class T, size_t N >
constexpr size_t ARRAY_SIZE(T(&)[N]) { return N; } #if __cplusplus >= 201103L
constexpr
#endif /* >= C++11 */
size_t ARRAY_SIZE(T(&)[N]) { return N; }
#else #else
/* Evaluates to number of elements in an array; compile error if not /* Evaluates to number of elements in an array; compile error if not

View file

@ -6,6 +6,12 @@
#include <stdlib.h> #include <stdlib.h>
#if __cplusplus < 201103L
#define NOEXCEPT
#else /* >= C++11 */
#define NOEXCEPT noexcept
#endif /* __cplusplus */
void* operator new(size_t size) void* operator new(size_t size)
{ {
return malloc(size); return malloc(size);
@ -16,23 +22,23 @@ void* operator new[](size_t size)
return malloc(size); return malloc(size);
} }
void operator delete(void* ptr) noexcept void operator delete(void* ptr) NOEXCEPT
{ {
free(ptr); free(ptr);
} }
void operator delete[](void* ptr) noexcept void operator delete[](void* ptr) NOEXCEPT
{ {
free(ptr); free(ptr);
} }
#if (__cplusplus > 201103L) #if (__cplusplus > 201103L)
void operator delete(void* ptr, size_t) noexcept void operator delete(void* ptr, size_t) NOEXCEPT
{ {
free(ptr); free(ptr);
} }
void operator delete[](void* ptr, size_t) noexcept void operator delete[](void* ptr, size_t) NOEXCEPT
{ {
free(ptr); free(ptr);
} }