Replace the old STATIC_ASSERT macro with static_assert

This commit is contained in:
Desour 2023-06-12 22:14:43 +02:00 committed by sfan5
parent 8b108ed5f2
commit 9c348d057e
4 changed files with 8 additions and 20 deletions

View File

@ -158,8 +158,8 @@ EmergeManager::EmergeManager(Server *server, MetricsBackend *mb)
enable_mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info"); enable_mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info");
STATIC_ASSERT(ARRLEN(emergeActionStrs) == ARRLEN(m_completed_emerge_counter), static_assert(ARRLEN(emergeActionStrs) == ARRLEN(m_completed_emerge_counter),
enum_size_mismatches); "enum size mismatches");
for (u32 i = 0; i < ARRLEN(m_completed_emerge_counter); i++) { for (u32 i = 0; i < ARRLEN(m_completed_emerge_counter); i++) {
std::string help_str("Number of completed emerges with status "); std::string help_str("Number of completed emerges with status ");
help_str.append(emergeActionStrs[i]); help_str.append(emergeActionStrs[i]);

View File

@ -111,8 +111,8 @@ static unsigned int g_level_to_android[] = {
}; };
void AndroidLogOutput::logRaw(LogLevel lev, const std::string &line) { void AndroidLogOutput::logRaw(LogLevel lev, const std::string &line) {
STATIC_ASSERT(ARRLEN(g_level_to_android) == LL_MAX, static_assert(ARRLEN(g_level_to_android) == LL_MAX,
mismatch_between_android_and_internal_loglevels); "mismatch between android and internal loglevels");
__android_log_print(g_level_to_android[lev], __android_log_print(g_level_to_android[lev],
PROJECT_NAME_C, "%s", line.c_str()); PROJECT_NAME_C, "%s", line.c_str());
} }
@ -226,8 +226,8 @@ const std::string Logger::getLevelLabel(LogLevel lev)
"TRACE", "TRACE",
}; };
assert(lev < LL_MAX && lev >= 0); assert(lev < LL_MAX && lev >= 0);
STATIC_ASSERT(ARRLEN(names) == LL_MAX, static_assert(ARRLEN(names) == LL_MAX,
mismatch_between_loglevel_names_and_enum); "mismatch between loglevel names and enum");
return names[lev]; return names[lev];
} }

View File

@ -99,9 +99,9 @@ static MapgenDesc g_reg_mapgens[] = {
{"v6", true}, {"v6", true},
}; };
STATIC_ASSERT( static_assert(
ARRLEN(g_reg_mapgens) == MAPGEN_INVALID, ARRLEN(g_reg_mapgens) == MAPGEN_INVALID,
registered_mapgens_is_wrong_size); "g_reg_mapgens is wrong size");
//// ////
//// Mapgen //// Mapgen

View File

@ -42,18 +42,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
C(C &&other) = default; \ C(C &&other) = default; \
C &operator=(C &&) = default; C &operator=(C &&) = default;
#ifndef _MSC_VER
#define UNUSED_ATTRIBUTE __attribute__ ((unused))
#else
#define UNUSED_ATTRIBUTE
#endif
// Fail compilation if condition expr is not met.
// Note that 'msg' must follow the format of a valid identifier, e.g.
// STATIC_ASSERT(sizeof(foobar_t) == 40), foobar_t_is_wrong_size);
#define STATIC_ASSERT(expr, msg) \
UNUSED_ATTRIBUTE typedef char msg[!!(expr) * 2 - 1]
// Macros to facilitate writing position vectors to a stream // Macros to facilitate writing position vectors to a stream
// Usage: // Usage:
// v3s16 pos(1,2,3); // v3s16 pos(1,2,3);