如何将boost::string_view转换成std::string_view?
How to convert boost::string_view to std::string_view?
我正在使用一个使用 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
)。
或者您可以通过提供 BOOST_BEAST_USE_STD_STRING_VIEW
的定义,将使用它自己的 string_view 的 beast 切换为 std::string_view
我正在使用一个使用 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
)。
或者您可以通过提供 BOOST_BEAST_USE_STD_STRING_VIEW