Неожиданно для себя обнаружил неочевидное, для себя, поведение связки std::string и std::string_view. Из коробки к строке нельзя конкатенировать отображение строки.
#include <iostream>
#include <string>
/*
std::string operator+(const std::string& str, const std::string_view& view)
{
return str + std::string(view);
}
//*/
int main()
{
std::string str1 = "some string 1";
std::string_view str2 = "some string 2";
std::cout << str1 + str2;
return 1;
}
Вопросы к знатокам:
— с чем связано такое решение в стандарте?
— чем такая конкатенация отличается от конкатенации с сырой С-шной строкой?