From 6074c78516681aaef88b7b7a555306fd1922bb25 Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Fri, 18 Dec 2015 21:47:19 +0100 Subject: [PATCH] More string types for FString relational operators --- src/fstring.cpp | 252 ++++++++++++++++++++++++++++++++++++++++++++++++ src/fstring.h | 36 +++++++ 2 files changed, 288 insertions(+) diff --git a/src/fstring.cpp b/src/fstring.cpp index 77193175..38c482ae 100644 --- a/src/fstring.cpp +++ b/src/fstring.cpp @@ -1466,6 +1466,48 @@ bool FString::operator < (const FString& s) const return (wcscmp(string, s.string) < 0); } +//---------------------------------------------------------------------- +bool FString::operator < (const std::wstring& s) const +{ + const FString tmp(s); + return *this < tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator < (const wchar_t* s) const +{ + const FString tmp(s); + return *this < tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator < (const std::string& s) const +{ + const FString tmp(s); + return *this < tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator < (const char* s) const +{ + const FString tmp(s); + return *this < tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator < (const wchar_t c) const +{ + const FString tmp(c); + return *this < tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator < (const char c) const +{ + const FString tmp(c); + return *this < tmp; +} + //---------------------------------------------------------------------- bool FString::operator <= (const FString& s) const { @@ -1480,6 +1522,48 @@ bool FString::operator <= (const FString& s) const return (wcscmp(string, s.string) <= 0); } +//---------------------------------------------------------------------- +bool FString::operator <= (const std::wstring& s) const +{ + const FString tmp(s); + return *this <= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator <= (const wchar_t* s) const +{ + const FString tmp(s); + return *this <= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator <= (const std::string& s) const +{ + const FString tmp(s); + return *this <= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator <= (const char* s) const +{ + const FString tmp(s); + return *this <= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator <= (const wchar_t c) const +{ + const FString tmp(c); + return *this <= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator <= (const char c) const +{ + const FString tmp(c); + return *this <= tmp; +} + //---------------------------------------------------------------------- bool FString::operator == (const FString& s) const { @@ -1492,6 +1576,48 @@ bool FString::operator == (const FString& s) const return (wcscmp(string, s.string) == 0); } +//---------------------------------------------------------------------- +bool FString::operator == (const std::wstring& s) const +{ + const FString tmp(s); + return *this == tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator == (const wchar_t* s) const +{ + const FString tmp(s); + return *this == tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator == (const std::string& s) const +{ + const FString tmp(s); + return *this == tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator == (const char* s) const +{ + const FString tmp(s); + return *this == tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator == (const wchar_t c) const +{ + const FString tmp(c); + return *this == tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator == (const char c) const +{ + const FString tmp(c); + return *this == tmp; +} + //---------------------------------------------------------------------- bool FString::operator != (const FString& s) const { @@ -1504,6 +1630,48 @@ bool FString::operator != (const FString& s) const return (wcscmp(string, s.string) != 0); } +//---------------------------------------------------------------------- +bool FString::operator != (const std::wstring& s) const +{ + const FString tmp(s); + return *this != tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator != (const wchar_t* s) const +{ + const FString tmp(s); + return *this != tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator != (const std::string& s) const +{ + const FString tmp(s); + return *this != tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator != (const char* s) const +{ + const FString tmp(s); + return *this != tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator != (const wchar_t c) const +{ + const FString tmp(c); + return *this != tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator != (const char c) const +{ + const FString tmp(c); + return *this != tmp; +} + //---------------------------------------------------------------------- bool FString::operator >= (const FString& s) const { @@ -1518,6 +1686,48 @@ bool FString::operator >= (const FString& s) const return (wcscmp(string, s.string) >= 0); } +//---------------------------------------------------------------------- +bool FString::operator >= (const std::wstring& s) const +{ + const FString tmp(s); + return *this >= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator >= (const wchar_t* s) const +{ + const FString tmp(s); + return *this >= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator >= (const std::string& s) const +{ + const FString tmp(s); + return *this >= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator >= (const char* s) const +{ + const FString tmp(s); + return *this >= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator >= (const wchar_t c) const +{ + const FString tmp(c); + return *this >= tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator >= (const char c) const +{ + const FString tmp(c); + return *this >= tmp; +} + //---------------------------------------------------------------------- bool FString::operator > (const FString& s) const { @@ -1532,6 +1742,48 @@ bool FString::operator > (const FString& s) const return (wcscmp(string, s.string) > 0); } +//---------------------------------------------------------------------- +bool FString::operator > (const std::wstring& s) const +{ + const FString tmp(s); + return *this > tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator > (const wchar_t* s) const +{ + const FString tmp(s); + return *this > tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator > (const std::string& s) const +{ + const FString tmp(s); + return *this > tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator > (const char* s) const +{ + const FString tmp(s); + return *this > tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator > (const wchar_t c) const +{ + const FString tmp(c); + return *this > tmp; +} + +//---------------------------------------------------------------------- +bool FString::operator > (const char c) const +{ + const FString tmp(c); + return *this > tmp; +} + //---------------------------------------------------------------------- const FString& FString::insert (const FString& s, uInt pos) { diff --git a/src/fstring.h b/src/fstring.h index a2c2a36b..df7c56fe 100644 --- a/src/fstring.h +++ b/src/fstring.h @@ -213,11 +213,47 @@ class FString const FString operator () (uInt, uInt); bool operator < (const FString&) const; + bool operator < (const std::wstring&) const; + bool operator < (const wchar_t*) const; + bool operator < (const std::string&) const; + bool operator < (const char*) const; + bool operator < (const wchar_t) const; + bool operator < (const char) const; bool operator <= (const FString&) const; + bool operator <= (const std::wstring&) const; + bool operator <= (const wchar_t*) const; + bool operator <= (const std::string&) const; + bool operator <= (const char*) const; + bool operator <= (const wchar_t) const; + bool operator <= (const char) const; bool operator == (const FString&) const; + bool operator == (const std::wstring&) const; + bool operator == (const wchar_t*) const; + bool operator == (const std::string&) const; + bool operator == (const char*) const; + bool operator == (const wchar_t) const; + bool operator == (const char) const; bool operator != (const FString&) const; + bool operator != (const std::wstring&) const; + bool operator != (const wchar_t*) const; + bool operator != (const std::string&) const; + bool operator != (const char*) const; + bool operator != (const wchar_t) const; + bool operator != (const char) const; bool operator >= (const FString&) const; + bool operator >= (const std::wstring&) const; + bool operator >= (const wchar_t*) const; + bool operator >= (const std::string&) const; + bool operator >= (const char*) const; + bool operator >= (const wchar_t) const; + bool operator >= (const char) const; bool operator > (const FString&) const; + bool operator > (const std::wstring&) const; + bool operator > (const wchar_t*) const; + bool operator > (const std::string&) const; + bool operator > (const char*) const; + bool operator > (const wchar_t) const; + bool operator > (const char) const; operator const char* () const { return c_str(); }