From bf05a14ef56d82364b0688a7536ac7ff0a387d2d Mon Sep 17 00:00:00 2001 From: mniip Date: Fri, 20 Mar 2020 05:45:13 +0300 Subject: [PATCH] Temporarily deprecate character literal to string conversions. --- src/common/String.h | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/common/String.h b/src/common/String.h index d39287fee..9947e886b 100644 --- a/src/common/String.h +++ b/src/common/String.h @@ -401,7 +401,7 @@ public: inline String(super &&other): super(std::move(other)) {} inline String(String const &other): super(other) {} inline String(String &&other): super(std::move(other)) {} - template inline String(ByteString::value_type const (&ch)[N]): super(ByteString(ch, N - 1).FromAscii()) {} + template [[deprecated]] inline String(ByteString::value_type const (&ch)[N]): super(ByteString(ch, N - 1).FromAscii()) {} inline String &operator=(String const &other) { super::operator=(other); return *this; } inline String &operator=(String &&other) { super::operator=(other); return *this; } @@ -549,26 +549,26 @@ inline String operator+(String::value_type lhs, String const &rhs) { return lhs inline String operator+(String::value_type lhs, String &&rhs) { return lhs + static_cast &&>(rhs); } inline String operator+(String::value_type const *lhs, String const &rhs) { return lhs + static_cast const &>(rhs); } inline String operator+(String::value_type const *lhs, String &&rhs) { return lhs + static_cast &&>(rhs); } -template inline String operator+(String const &lhs, ByteString::value_type const (&rhs)[N]) { return static_cast const &>(lhs) + ByteString(rhs).FromAscii(); } -template inline String operator+(String &&lhs, ByteString::value_type const (&rhs)[N]) { return static_cast &&>(lhs) + ByteString(rhs).FromAscii(); } -template inline String operator+(ByteString::value_type const (&lhs)[N], String const &rhs) { return ByteString(lhs).FromAscii() + static_cast const &>(rhs); } -template inline String operator+(ByteString::value_type const (&lhs)[N], String &&rhs) { return ByteString(lhs).FromAscii() + static_cast &&>(rhs); } +template [[deprecated]] inline String operator+(String const &lhs, ByteString::value_type const (&rhs)[N]) { return static_cast const &>(lhs) + ByteString(rhs).FromAscii(); } +template [[deprecated]] inline String operator+(String &&lhs, ByteString::value_type const (&rhs)[N]) { return static_cast &&>(lhs) + ByteString(rhs).FromAscii(); } +template [[deprecated]] inline String operator+(ByteString::value_type const (&lhs)[N], String const &rhs) { return ByteString(lhs).FromAscii() + static_cast const &>(rhs); } +template [[deprecated]] inline String operator+(ByteString::value_type const (&lhs)[N], String &&rhs) { return ByteString(lhs).FromAscii() + static_cast &&>(rhs); } inline bool operator==(String const &lhs, String const &rhs) { return static_cast const &>(lhs) == static_cast const &>(rhs); } inline bool operator==(String const &lhs, std::basic_string const &rhs) { return static_cast const &>(lhs) == rhs; } inline bool operator==(String const &lhs, String::value_type const *rhs) { return static_cast const &>(lhs) == rhs; } inline bool operator==(std::basic_string const &lhs, String const &rhs) { return lhs == static_cast const &>(rhs); } inline bool operator==(String::value_type const *lhs, String const &rhs) { return lhs == static_cast const &>(rhs); } -template inline bool operator==(String const &lhs, ByteString::value_type const (&rhs)[N]) { return static_cast const &>(lhs) == ByteString(rhs).FromAscii(); } -template inline bool operator==(ByteString::value_type const (&lhs)[N], String const &rhs) { return ByteString(lhs).FromAscii() == static_cast const &>(rhs); } +template [[deprecated]] inline bool operator==(String const &lhs, ByteString::value_type const (&rhs)[N]) { return static_cast const &>(lhs) == ByteString(rhs).FromAscii(); } +template [[deprecated]] inline bool operator==(ByteString::value_type const (&lhs)[N], String const &rhs) { return ByteString(lhs).FromAscii() == static_cast const &>(rhs); } inline bool operator!=(String const &lhs, String const &rhs) { return static_cast const &>(lhs) != static_cast const &>(rhs); } inline bool operator!=(String const &lhs, std::basic_string const &rhs) { return static_cast const &>(lhs) != rhs; } inline bool operator!=(String const &lhs, String::value_type const *rhs) { return static_cast const &>(lhs) != rhs; } inline bool operator!=(std::basic_string const &lhs, String const &rhs) { return lhs != static_cast const &>(rhs); } inline bool operator!=(String::value_type const *lhs, String const &rhs) { return lhs != static_cast const &>(rhs); } -template inline bool operator!=(String const &lhs, ByteString::value_type const (&rhs)[N]) { return static_cast const &>(lhs) != ByteString(rhs).FromAscii(); } -template inline bool operator!=(ByteString::value_type const (&lhs)[N], String const &rhs) { return ByteString(lhs).FromAscii() != static_cast const &>(rhs); } +template [[deprecated]] inline bool operator!=(String const &lhs, ByteString::value_type const (&rhs)[N]) { return static_cast const &>(lhs) != ByteString(rhs).FromAscii(); } +template [[deprecated]] inline bool operator!=(ByteString::value_type const (&lhs)[N], String const &rhs) { return ByteString(lhs).FromAscii() != static_cast const &>(rhs); } inline String ByteString::FromAscii() const { @@ -673,7 +673,7 @@ StringBuilder &operator<<(StringBuilder &, String::value_type const *); StringBuilder &operator<<(StringBuilder &, String const &); StringBuilder &operator<<(StringBuilder &, float); StringBuilder &operator<<(StringBuilder &, double); -template StringBuilder &operator<<(StringBuilder &b, ByteString::value_type const (&data)[N]) { return b << ByteString(data).FromUtf8(); } +template [[deprecated]] StringBuilder &operator<<(StringBuilder &b, ByteString::value_type const (&data)[N]) { return b << ByteString(data).FromUtf8(); } template String String::Build(Ts&&... args) { @@ -682,5 +682,7 @@ template String String::Build(Ts&&... args) return b.Build(); } +inline String operator""_ascii(ByteString::value_type const *ch, size_t N) { return ByteString(ch, N).FromAscii(); } + #include "common/Format.h" #include "common/Internationalization.h"