返回从字符串文字创建的静态string_view安全吗?
我有一个相对简单的用例:我想将一个特征与可以返回某些用户定义的字符串的类相关联,即某些用户定义的注册ID。由于本应该在编译时定义此注册,因此我希望它为constexpr,所以我写了以下内容:
template <typename T>
struct ClassRegistration
{
static constexpr std::string_view
Name();
};
template <>
struct ClassRegistration<int>
{
static constexpr std::string_view
Name()
{
return std::string_view{ "int" };
}
};
一切正常,但是由于String_view实际上没有其缓冲区,所以我想知道它是否保证它是安全的,我不仅指悬挂的指针。据我阅读的字符串文字可以保证只有程序本身的寿命(因此,从此)。
因此,这种使用String_view的用法是否安全且适当?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正确,字符串文字就可以拥有寿命。
是的,您的代码很好。
That's correct.
Yes, your code is fine.