#pragma once #include #include #include namespace NYsonPull { namespace NDetail { namespace NImpl { inline void apply_args(TStringBuilder&) { } template inline void apply_args(TStringBuilder& builder, T&& arg, Args&&... args) { apply_args(builder << arg, std::forward(args)...); } } template TString format_string(Args&&... args) { TStringBuilder builder; NImpl::apply_args(builder, std::forward(args)...); return TString(std::move(builder)); } } }