Skip to content

Commit 6ade720

Browse files
pabigotMaureenHelm
authored andcommitted
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 <[email protected]>
1 parent e6b3a33 commit 6ade720

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

include/sys/util.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@
5050

5151
#if defined(__cplusplus)
5252
template < class T, size_t N >
53-
constexpr size_t ARRAY_SIZE(T(&)[N]) { return N; }
53+
#if __cplusplus >= 201103L
54+
constexpr
55+
#endif /* >= C++11 */
56+
size_t ARRAY_SIZE(T(&)[N]) { return N; }
5457

5558
#else
5659
/* Evaluates to number of elements in an array; compile error if not

subsys/cpp/cpp_new.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66

77
#include <stdlib.h>
88

9+
#if __cplusplus < 201103L
10+
#define NOEXCEPT
11+
#else /* >= C++11 */
12+
#define NOEXCEPT noexcept
13+
#endif /* __cplusplus */
14+
915
void* operator new(size_t size)
1016
{
1117
return malloc(size);
@@ -16,23 +22,23 @@ void* operator new[](size_t size)
1622
return malloc(size);
1723
}
1824

19-
void operator delete(void* ptr) noexcept
25+
void operator delete(void* ptr) NOEXCEPT
2026
{
2127
free(ptr);
2228
}
2329

24-
void operator delete[](void* ptr) noexcept
30+
void operator delete[](void* ptr) NOEXCEPT
2531
{
2632
free(ptr);
2733
}
2834

2935
#if (__cplusplus > 201103L)
30-
void operator delete(void* ptr, size_t) noexcept
36+
void operator delete(void* ptr, size_t) NOEXCEPT
3137
{
3238
free(ptr);
3339
}
3440

35-
void operator delete[](void* ptr, size_t) noexcept
41+
void operator delete[](void* ptr, size_t) NOEXCEPT
3642
{
3743
free(ptr);
3844
}

0 commit comments

Comments
 (0)