我正在使用一个 boost 库,它使用boost::string_view
. 但是,我想std::string_view
在我的代码中使用。
问:在这两者之间转换的最佳方式是什么?
目前我正在使用:
void foo(std::string_view sv) {
# ...
}
void foo(boost::string_view bsv) {
foo(std::string(bsv));
}
但这会创建一个不必要的字符串。
我正在使用一个 boost 库,它使用boost::string_view
. 但是,我想std::string_view
在我的代码中使用。
问:在这两者之间转换的最佳方式是什么?
目前我正在使用:
void foo(std::string_view sv) {
# ...
}
void foo(boost::string_view bsv) {
foo(std::string(bsv));
}
但这会创建一个不必要的字符串。
单程:
void foo(std::string_view sv);
inline void foo(boost::string_view bsv) {
foo(std::string_view(bsv.data(), bsv.size()));
}
确保将长度传递给std::string_view
它,否则它会不必要地调用Traits::length
( )。std::strlen
或者你可以使用它自己的 string_view 切换野兽到 std::string_view,通过提供定义BOOST_BEAST_USE_STD_STRING_VIEW