aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/vcpkg/base/stringliteral.h3
-rw-r--r--toolsrc/include/vcpkg/base/strings.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/toolsrc/include/vcpkg/base/stringliteral.h b/toolsrc/include/vcpkg/base/stringliteral.h
index c07f04cec..9970adc2a 100644
--- a/toolsrc/include/vcpkg/base/stringliteral.h
+++ b/toolsrc/include/vcpkg/base/stringliteral.h
@@ -7,7 +7,8 @@ namespace vcpkg
struct StringLiteral
{
template<int N>
- constexpr StringLiteral(const char (&str)[N]) : m_size(N), m_cstr(str)
+ constexpr StringLiteral(const char (&str)[N])
+ : m_size(N - 1) /* -1 here accounts for the null byte at the end*/, m_cstr(str)
{
}
diff --git a/toolsrc/include/vcpkg/base/strings.h b/toolsrc/include/vcpkg/base/strings.h
index e165c69da..4b39b0a28 100644
--- a/toolsrc/include/vcpkg/base/strings.h
+++ b/toolsrc/include/vcpkg/base/strings.h
@@ -1,6 +1,7 @@
#pragma once
#include <vcpkg/base/cstringview.h>
+#include <vcpkg/base/stringliteral.h>
#include <vector>
@@ -53,6 +54,7 @@ namespace vcpkg::Strings
std::string ascii_to_uppercase(std::string s);
bool case_insensitive_ascii_starts_with(const std::string& s, const std::string& pattern);
+ bool ends_with(const std::string& s, StringLiteral pattern);
template<class Container, class Transformer>
std::string join(const char* delimiter, const Container& v, Transformer transformer)