diff options
| author | babenko <[email protected]> | 2026-04-22 09:41:38 +0300 |
|---|---|---|
| committer | babenko <[email protected]> | 2026-04-22 10:08:46 +0300 |
| commit | 70410f21980c0632b4746ec75cd9ba5762fc109a (patch) | |
| tree | 9ad9ef9ca392b9a878c2b28db88a16195ae3e792 /library/cpp/yt/string | |
| parent | 5d2b2544e56b3f70080976477451bfcacd34ec63 (diff) | |
YT-18571: Add format string checks to TStringBuilderBase::AppendFormat; also fix some releaved issues
commit_hash:dd15e713a6a83c8a14f1df2f011fa06f189f4a00
Diffstat (limited to 'library/cpp/yt/string')
| -rw-r--r-- | library/cpp/yt/string/format-inl.h | 2 | ||||
| -rw-r--r-- | library/cpp/yt/string/string_builder-inl.h | 10 | ||||
| -rw-r--r-- | library/cpp/yt/string/string_builder.h | 6 |
3 files changed, 6 insertions, 12 deletions
diff --git a/library/cpp/yt/string/format-inl.h b/library/cpp/yt/string/format-inl.h index 5d10c823874..15d8b791e23 100644 --- a/library/cpp/yt/string/format-inl.h +++ b/library/cpp/yt/string/format-inl.h @@ -941,7 +941,7 @@ void FormatValue( { std::apply( [&] <class... TInnerArgs> (TInnerArgs&&... args) { - builder->AppendFormat(value.Format_, std::forward<TInnerArgs>(args)...); + builder->AppendFormat(TRuntimeFormat{value.Format_}, std::forward<TInnerArgs>(args)...); }, value.Args_); } diff --git a/library/cpp/yt/string/string_builder-inl.h b/library/cpp/yt/string/string_builder-inl.h index 5d66e1b0ded..9a0e34ca58d 100644 --- a/library/cpp/yt/string/string_builder-inl.h +++ b/library/cpp/yt/string/string_builder-inl.h @@ -81,15 +81,9 @@ inline void TStringBuilderBase::Reset() } template <class... TArgs> -void TStringBuilderBase::AppendFormat(TStringBuf format, TArgs&& ... args) +void TStringBuilderBase::AppendFormat(TFormatString<TArgs...> format, TArgs&&... args) { - Format(this, TRuntimeFormat{format}, std::forward<TArgs>(args)...); -} - -template <size_t Length, class... TArgs> -void TStringBuilderBase::AppendFormat(const char (&format)[Length], TArgs&& ... args) -{ - Format(this, TRuntimeFormat{format}, std::forward<TArgs>(args)...); + Format(this, format, std::forward<TArgs>(args)...); } //////////////////////////////////////////////////////////////////////////////// diff --git a/library/cpp/yt/string/string_builder.h b/library/cpp/yt/string/string_builder.h index 82caed29943..ad2e3280857 100644 --- a/library/cpp/yt/string/string_builder.h +++ b/library/cpp/yt/string/string_builder.h @@ -1,5 +1,7 @@ #pragma once +#include "format_string.h" + #include <util/generic/string.h> namespace NYT { @@ -28,10 +30,8 @@ public: void AppendString(TStringBuf str); void AppendString(const char* str); - template <size_t Length, class... TArgs> - void AppendFormat(const char (&format)[Length], TArgs&&... args); template <class... TArgs> - void AppendFormat(TStringBuf format, TArgs&&... args); + void AppendFormat(TFormatString<TArgs...> format, TArgs&&... args); void Reset(); |
