做下面的事情是UB吗?
void foo(std::string_view view) {...}
void bar()
{
std::string str;
foo(std::move(str));
}
谢谢!
最佳答案
这是定义明确的行为,尽管它不是特别有用。 basic_string
的operator basic_string_view
将用于执行转换,它没有左值/右值限制。因此,如果您根本没有使用 move
,它会做同样的事情。
关于c++ - 将 std::string 的 xvalue 传递给采用 std::string_view 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836289/