如何将boost :: string_view转换为std :: string_view?

问题描述 投票:-1回答:1

我正在使用一个使用boost::string_view的boost库。但是,我想在我的代码中使用std::string_view。 问:在这两者之间进行转换的最佳方法是什么?

目前我正在使用:

void foo(std::string_view sv) {
# ...
}
void foo(boost::string_view bsv) {
  foo(std::string(bsv));
}

但这会产生不必要的字符串。

c++ boost c++17 string-view
1个回答
3
投票

单程:

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::lengthstd::strlen)。

© www.soinside.com 2019 - 2024. All rights reserved.