Передача xvalue std :: string в функцию, принимающую std :: string_view

Это UB, чтобы сделать следующее?

void foo(std::string_view view) {...}

void bar()
{
std::string str;
foo(std::move(str));
}

Спасибо!

1

Решение

Это четко определенное поведение, хотя оно не особенно полезно. basic_string«s operator basic_string_view будет использоваться для выполнения преобразования, и у него нет ограничений lvalue / rvalue. Так что он будет делать то же самое, что и если бы вы не использовали move совсем.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]