从函数返回 string

互联网 行业动态 更新时间:2024-06-13 00:19:41

G. *_*pen 5

以这种方式返回 string_view 是不安全的(或 UB),还是我可以良心继续这样做

是的。你使用它的方式完全没问题。您的函数string_view返回的toString数据形成了一个数据视图,该视图将保持不变,直到程序终止。

或者,是否有更好(更快/更安全)的方法来解决这个枚举到字符串的一般问题?

您可以在其中创建一个constexpr带有switch-state 的函数,如下所示:

constexpr std::string_view toString(Color color)
{
    switch (color) {
    case Color::red:   return "red";
    case Color::green: return "green";
    ...
    }
}

如果在编译时评估函数,效率应该没有差异。但是编译器可以检查您case是否为所有可能的 s 添加了 -statements Color,如果没有,它会发出警告。也不需要Color::last这种方式。

保持 theenumstd::arrayorswitch语句同步可能很烦人,尤其是当您有很多枚举值时。X 宏在这里可能会有所帮助。

更多推荐

函数,string

本文发布于:2023-04-21 15:30:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/fce5fc0d41c374fba5a324d3a0b00eff.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   string

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!