我正在使用一个使用boost::string_view
的boost库。但是,我想在我的代码中使用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
)。