Sil*_*cer 6 c++ qt string-literals constexpr
有没有办法在 Qt 中定义静态 constexpr 字符串文字成员?即类似以下内容:
class X
{
static constexpr QString tag = "mytag";
};
Run Code Online (Sandbox Code Playgroud)
我按照 Jesper 在他的评论中推荐的操作,使用了 QLatin1String。但我通过一个小帮助器类使用它来避免 QLatin1String 中的 strlen() 调用:
struct ConstLatin1String : public QLatin1String
{
constexpr ConstLatin1String(const char* const s) :
QLatin1String(s, static_cast<int>(std::char_traits<char>::length(s))) {}
};
Run Code Online (Sandbox Code Playgroud)
这允许执行以下操作:
static constexpr ConstLatin1String mystring = "foo";
Run Code Online (Sandbox Code Playgroud)