aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/CStringView.h
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-10-13 18:37:41 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-10-13 18:37:41 -0700
commite17de99599a2f114faab1bb4821fbaad4d266c95 (patch)
tree397fec8a85af3ef002c125ce013eceb60d27116d /toolsrc/include/CStringView.h
parent1fb5313a881fe0fcfd90dff5255045c8367ee00b (diff)
downloadvcpkg-e17de99599a2f114faab1bb4821fbaad4d266c95.tar.gz
vcpkg-e17de99599a2f114faab1bb4821fbaad4d266c95.zip
[vcpkg] Re-layout all files using new organization scheme.
All filenames and directories are lowercase. Use dots for namespace separation.
Diffstat (limited to 'toolsrc/include/CStringView.h')
-rw-r--r--toolsrc/include/CStringView.h96
1 files changed, 0 insertions, 96 deletions
diff --git a/toolsrc/include/CStringView.h b/toolsrc/include/CStringView.h
deleted file mode 100644
index c1810b4f1..000000000
--- a/toolsrc/include/CStringView.h
+++ /dev/null
@@ -1,96 +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 const CharType* c_str() const { return cstr; }
-
- private:
- const CharType* cstr;
- };
-
- namespace details
- {
- inline bool vcpkg_strcmp(const char* l, const char* r) { return strcmp(l, r) == 0; }
- inline bool vcpkg_strcmp(const wchar_t* l, const wchar_t* r) { return wcscmp(l, r) == 0; }
- }
-
- template<class CharType>
- bool operator==(const BasicCStringView<CharType>& l, const BasicCStringView<CharType>& r)
- {
- return details::vcpkg_strcmp(l.c_str(), r.c_str());
- }
-
- template<class CharType>
- bool operator==(const CharType* l, const BasicCStringView<CharType>& r)
- {
- return details::vcpkg_strcmp(l, r.c_str());
- }
-
- template<class CharType>
- bool operator==(const BasicCStringView<CharType>& r, const CharType* l)
- {
- return details::vcpkg_strcmp(l, r.c_str());
- }
-
- 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();
- }
-
- // notequals
- template<class CharType>
- bool operator!=(const BasicCStringView<CharType>& l, const BasicCStringView<CharType>& r)
- {
- return !details::vcpkg_strcmp(l.c_str(), r.c_str());
- }
-
- template<class CharType>
- bool operator!=(const CharType* l, const BasicCStringView<CharType>& r)
- {
- return !details::vcpkg_strcmp(l, r.c_str());
- }
-
- template<class CharType>
- bool operator!=(const BasicCStringView<CharType>& r, const CharType* l)
- {
- return !details::vcpkg_strcmp(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*");
-}