如何将 boost::string_view 转换为 std::string_view?
Posted
技术标签:
【中文标题】如何将 boost::string_view 转换为 std::string_view?【英文标题】:How to convert boost::string_view to std::string_view? 【发布时间】:2019-04-02 13:22:27 【问题描述】:我正在使用一个使用 boost::string_view
的 boost 库。但是,我想在我的代码中使用std::string_view
。问:在这两者之间进行转换的最佳方式是什么?
目前我正在使用:
void foo(std::string_view sv)
# ...
void foo(boost::string_view bsv)
foo(std::string(bsv));
但这会创建一个不必要的字符串。
【问题讨论】:
【参考方案1】:一种方式:
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
)。
【讨论】:
【参考方案2】:或者你可以通过提供BOOST_BEAST_USE_STD_STRING_VIEW
的定义将beast使用它自己的string_view切换到std::string_view
【讨论】:
以上是关于如何将 boost::string_view 转换为 std::string_view?的主要内容,如果未能解决你的问题,请参考以下文章