#include #include #include template void append(std::string& str, T with) { // Жесткая проверка типа на этапе компиляции static_assert(std::is_arithmetic_v || std::is_convertible_v, "Ошибка: Тип должен быть числом или строкой!"); if constexpr (std::is_convertible_v) { str += with; } else { str += std::to_string(with); } } int main() { std::string t = ""; append(t, "Hello "); append(t, "World!"); append(t, 98L); std::cout << t << std::endl; return 0; }