amend to #222: prevent merge errors by unexpected growing of properties enum in compilers supporting constexpr/static_assert, checking its length at compile time:

ARRAY_SIZE(g_NameToPropID) must be always equal NCoderPropID::kEndOfProp
This commit is contained in:
sebres
2021-08-26 22:02:12 +02:00
parent df06f31a42
commit f5dc5b2bf6
2 changed files with 7 additions and 1 deletions

View File

@@ -331,6 +331,11 @@ static const CNameToPropID g_NameToPropID[] =
{ VT_UI4, "ldmhevery" }
};
#if defined(static_assert) || (__STDC_VERSION >= 201112L) || (_MSC_VER >= 1900)
static_assert(ARRAY_SIZE(g_NameToPropID) == NCoderPropID::kEndOfProp,
"g_NameToPropID doesn't match NCoderPropID enum");
#endif
static int FindPropIdExact(const UString &name)
{
for (unsigned i = 0; i < ARRAY_SIZE(g_NameToPropID); i++)

View File

@@ -148,7 +148,8 @@ namespace NCoderPropID
kLdmHashLog, // VT_UI4 The minimum ldmhlog is 6 and the maximum is 26 (default: 20).
kLdmSearchLength, // VT_UI4 The minimum ldmslen is 4 and the maximum is 4096 (default: 64).
kLdmBucketSizeLog, // VT_UI4 The minimum ldmblog is 0 and the maximum is 8 (default: 3).
kLdmHashRateLog // VT_UI4 The default value is wlog - ldmhlog.
kLdmHashRateLog, // VT_UI4 The default value is wlog - ldmhlog.
kEndOfProp
};
}