aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-04-01 01:39:00 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-04-01 01:39:00 -0700
commit162e9ce98f4dad24e271de3b3f14c189f73bf67d (patch)
treee2cf95f27418d53f12ffeab67000daf833d4681b /toolsrc/include
parentaae15bd468c9b94118dc7d93c4c4a9856912bcc3 (diff)
downloadvcpkg-162e9ce98f4dad24e271de3b3f14c189f73bf67d.tar.gz
vcpkg-162e9ce98f4dad24e271de3b3f14c189f73bf67d.zip
[vcpkg] Collapse cXstring_views into a single template.
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/cstring_view.h29
1 files changed, 10 insertions, 19 deletions
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<class CharType>
+ 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<CharType>& 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<char>;
+ using cwstring_view = basic_cstring_view<wchar_t>;
- 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(); }