Так как С++ 1z, std::string_view
, легкий вид в непрерывную последовательность символов, которая позволяет избежать ненужного копирования данные. Вместо того, чтобы иметь параметр const std::string&
, теперь часто рекомендуется использовать std::string_view
.
Однако быстро обнаруживается, что переключение с const std::string&
на std::string_view
прерывает код, который использует конкатенацию строк, поскольку нет поддержки для конкатенации std::string
и std::string_view
:
std::string{"abc"} + std::string_view{"def"}; // ill-formed (fails to compile)
std::string_view{"abc"} + std::string{"def"}; // ill-formed (fails to compile)
Почему нет поддержки для конкатенации std::string
и std::string_view
в стандарте?