我维护一个C++库,其API中经常使用const std::string&
参数。然而,我收到了一些用户请求,希望切换到std::string_view
以实现当前API无法实现的效率。
我考虑简单地将所有const std::string&
参数的实例替换为std::string_view
(可能还要进行功能检查以验证std::string_view
是否可用)。这会破坏任何用户的向后兼容性吗?我尝试了简单的更改,并没有发现它会破坏我的代码或测试,但当然这并不是穷尽检查。
我确实意识到这会破坏依赖于我的库精确函数签名的某些代码。为了简单起见,假设我不允许用户依赖于我的函数的精确类型签名/参数。
std::string_view
不允许从nullptr
构造。 - Joviborstd::string_view
在运行时失败。 - Jovibor