diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-10-16 17:17:28 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-10-16 17:17:28 -0700 |
| commit | ee2831c548b54cdccf064663b3fffda5d6a4c6b8 (patch) | |
| tree | 70390dc6e2e22877cb6ede677076c8005fab8a1c /toolsrc/include/CStringView.h | |
| parent | d88f53de9c284cfc67ba21707d60a44ba41ede8a (diff) | |
| parent | 374253cb1b12a60925693130132f1a6ab6c3a83a (diff) | |
| download | vcpkg-ee2831c548b54cdccf064663b3fffda5d6a4c6b8.tar.gz vcpkg-ee2831c548b54cdccf064663b3fffda5d6a4c6b8.zip | |
Merge from master
Diffstat (limited to 'toolsrc/include/CStringView.h')
| -rw-r--r-- | toolsrc/include/CStringView.h | 54 |
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*"); -} |
