diff --git a/library/cpp/mime/types/mime.cpp b/library/cpp/mime/types/mime.cpp index 144ae392b27..39e5f2706cc 100644 --- a/library/cpp/mime/types/mime.cpp +++ b/library/cpp/mime/types/mime.cpp @@ -158,7 +158,7 @@ MimeTypes TMimeTypes::MimeByStr(const char* str) const { } MimeTypes TMimeTypes::MimeByStr(const TStringBuf& str) const { - TRecordHash::const_iterator it = ContentTypes.find(str); + TRecordHash::const_iterator it = ContentTypes.find(str.data()); if (it == ContentTypes.end()) return MIME_UNKNOWN; return Records[it->second].Mime; diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt index d942885a045..0b9c5175fb4 100644 --- a/util/CMakeLists.txt +++ b/util/CMakeLists.txt @@ -387,11 +387,11 @@ _ydb_sdk_add_library(yutil) target_compile_options(yutil PUBLIC -DTSTRING_IS_STD_STRING + -DNO_CUSTOM_CHAR_PTR_STD_COMPARATOR ) target_compile_options(yutil PRIVATE -Wnarrowing - -DNO_CUSTOM_CHAR_PTR_STD_COMPARATOR ) target_link_libraries(yutil PUBLIC diff --git a/util/charset/CMakeLists.txt b/util/charset/CMakeLists.txt index 9c9900e1efa..cce4a665716 100644 --- a/util/charset/CMakeLists.txt +++ b/util/charset/CMakeLists.txt @@ -6,11 +6,11 @@ _ydb_sdk_add_library(util-charset) target_compile_options(util-charset PUBLIC -DTSTRING_IS_STD_STRING + -DNO_CUSTOM_CHAR_PTR_STD_COMPARATOR ) target_compile_options(util-charset PRIVATE -Wnarrowing - -DNO_CUSTOM_CHAR_PTR_STD_COMPARATOR ) target_joined_source(util-charset diff --git a/util/str_stl.h b/util/str_stl.h index 5b0254bee9b..70f9d46b077 100644 --- a/util/str_stl.h +++ b/util/str_stl.h @@ -211,6 +211,13 @@ struct TEqualTo: public TEqualTo { using is_transparent = void; }; +template <> +struct TEqualTo { + inline bool operator()(const char* a, const char* b) const { + return strcmp(a, b) == 0; + } +}; + template struct TEqualTo> { template @@ -264,6 +271,13 @@ struct TLess: public TLess { using is_transparent = void; }; +template <> +struct TLess { + inline bool operator()(const char* a, const char* b) const { + return strcmp(a, b) < 0; + } +}; + template struct TGreater: public std::greater { };