Начиная с C++17, у нас есть 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
?
operator +
, чтобы код заработал. - person NathanOliver   schedule 19.06.2017