From 162e9ce98f4dad24e271de3b3f14c189f73bf67d Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sat, 1 Apr 2017 01:39:00 -0700 Subject: [vcpkg] Collapse cXstring_views into a single template. --- toolsrc/include/cstring_view.h | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) (limited to 'toolsrc/include') diff --git a/toolsrc/include/cstring_view.h b/toolsrc/include/cstring_view.h index b67b7df0d..88728992b 100644 --- a/toolsrc/include/cstring_view.h +++ b/toolsrc/include/cstring_view.h @@ -3,33 +3,24 @@ namespace vcpkg { - struct cstring_view + template + struct basic_cstring_view { - constexpr cstring_view(const char* cstr) : cstr(cstr) {} - cstring_view(const std::string& str) : cstr(str.c_str()) {} + constexpr basic_cstring_view(const CharType* cstr) : cstr(cstr) {} + basic_cstring_view(const std::basic_string& str) : cstr(str.c_str()) {} - constexpr operator const char*() const { return cstr; } + constexpr operator const CharType*() const { return cstr; } - constexpr const char* c_str() const { return cstr; } + constexpr const CharType* c_str() const { return cstr; } private: - const char* cstr; + const CharType* cstr; }; - inline const char* to_printf_arg(const cstring_view spec) { return spec.c_str(); } - - struct cwstring_view - { - constexpr cwstring_view(const wchar_t* cstr) : cstr(cstr) {} - cwstring_view(const std::wstring& str) : cstr(str.c_str()) {} - - constexpr operator const wchar_t*() const { return cstr; } + using cstring_view = basic_cstring_view; + using cwstring_view = basic_cstring_view; - constexpr const wchar_t* c_str() const { return cstr; } - - private: - const wchar_t* cstr; - }; + inline const char* to_printf_arg(const cstring_view spec) { return spec.c_str(); } inline const wchar_t* to_wprintf_arg(const cwstring_view spec) { return spec.c_str(); } -- cgit v1.2.3