1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-15 12:16:40 +08:00

cmStringAlgorithms: Add cmStrLen()

This commit is contained in:
Kyle Edwards
2020-09-03 11:50:25 -04:00
parent 412cc37d35
commit 0c9cdf30ed
2 changed files with 17 additions and 0 deletions

View File

@@ -33,6 +33,13 @@ inline bool cmNonempty(std::string const* str)
return str && !str->empty();
}
/** Returns length of a literal string. */
template <size_t N>
constexpr size_t cmStrLen(const char (&/*str*/)[N])
{
return N - 1;
}
/** Callable string comparison struct. */
struct cmStrCmp
{

View File

@@ -226,5 +226,15 @@ int testStringAlgorithms(int /*unused*/, char* /*unused*/ [])
"cmStrToULong rejects trailing content.");
}
// ----------------------------------------------------------------------
// Test cmStrLen
{
constexpr auto len = cmStrLen("Hello world!");
assert_ok(len == 12,
"cmStrLen returns length of non-empty literal string");
assert_ok(cmStrLen("") == 0,
"cmStrLen returns length of empty literal string");
}
return failed;
}