aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/CStringView.h
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-10-16 17:17:28 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-10-16 17:17:28 -0700
commitee2831c548b54cdccf064663b3fffda5d6a4c6b8 (patch)
tree70390dc6e2e22877cb6ede677076c8005fab8a1c /toolsrc/include/CStringView.h
parentd88f53de9c284cfc67ba21707d60a44ba41ede8a (diff)
parent374253cb1b12a60925693130132f1a6ab6c3a83a (diff)
downloadvcpkg-ee2831c548b54cdccf064663b3fffda5d6a4c6b8.tar.gz
vcpkg-ee2831c548b54cdccf064663b3fffda5d6a4c6b8.zip
Merge from master
Diffstat (limited to 'toolsrc/include/CStringView.h')
-rw-r--r--toolsrc/include/CStringView.h54
1 files changed, 0 insertions, 54 deletions
diff --git a/toolsrc/include/CStringView.h b/toolsrc/include/CStringView.h
deleted file mode 100644
index 282caad3a..000000000
--- a/toolsrc/include/CStringView.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#pragma once
-#include <string>
-
-namespace vcpkg
-{
- template<class CharType>
- struct BasicCStringView
- {
- constexpr BasicCStringView() : cstr(nullptr) {}
- constexpr BasicCStringView(const CharType* cstr) : cstr(cstr) {}
- constexpr BasicCStringView(const BasicCStringView&) = default;
- BasicCStringView(const std::basic_string<CharType>& str) : cstr(str.c_str()) {}
-
- constexpr operator const CharType*() const { return cstr; }
- constexpr const CharType* c_str() const { return cstr; }
-
- private:
- const CharType* cstr;
- };
-
- template<class CharType>
- bool operator==(const std::basic_string<CharType>& l, const BasicCStringView<CharType>& r)
- {
- return l == r.c_str();
- }
-
- template<class CharType>
- bool operator==(const BasicCStringView<CharType>& r, const std::basic_string<CharType>& l)
- {
- return l == r.c_str();
- }
-
- template<class CharType>
- bool operator!=(const BasicCStringView<CharType>& r, const std::basic_string<CharType>& l)
- {
- return l != r.c_str();
- }
-
- template<class CharType>
- bool operator!=(const std::basic_string<CharType>& l, const BasicCStringView<CharType>& r)
- {
- return l != r.c_str();
- }
-
- using CStringView = BasicCStringView<char>;
- using CWStringView = BasicCStringView<wchar_t>;
-
- inline const char* to_printf_arg(const CStringView string_view) { return string_view.c_str(); }
-
- inline const wchar_t* to_wprintf_arg(const CWStringView string_view) { return string_view.c_str(); }
-
- static_assert(sizeof(CStringView) == sizeof(void*), "CStringView must be a simple wrapper around char*");
- static_assert(sizeof(CWStringView) == sizeof(void*), "CWStringView must be a simple wrapper around wchar_t*");
-}