1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-15 20:46:37 +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(); 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. */ /** Callable string comparison struct. */
struct cmStrCmp struct cmStrCmp
{ {

View File

@@ -226,5 +226,15 @@ int testStringAlgorithms(int /*unused*/, char* /*unused*/ [])
"cmStrToULong rejects trailing content."); "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; return failed;
} }