Hello Qt and C++ experts. I try to let the compiler generate a QLatin1String instance from a string literal. Q_DECL_CONSTEXPR inline explicit QLatin1String(const char *s) Q_DECL_NOTHROW : m_size(s ? int(strlen(s)) : 0), m_data(s) {}
cannot really do this as it uses strlen, is this right? Only a QLatin1String(nullptr) would be generated at compile time. There is also Q_DECL_CONSTEXPR inline explicit QLatin1String(const char *s, int sz) Q_DECL_NOTHROW : m_size(sz), m_data(s) {} but this has an additonal length parameter. So I wrote this: class Latin1Literal : public QLatin1String { public: template <std::size_t N> Q_DECL_CONSTEXPR inline explicit Latin1Literal(const char (&s)[N]) Q_DECL_NOTHROW : QLatin1String(s, N - 1) { } }; I can then do something like if (arguments.contains(HmiGfx::RHQt::UtQt::Latin1Literal("--fullscreen"))) or define a variable like Q_CONSTEXPR Latin1Literal MY_PREFIX("Prefix"); My question is now, is this the right thing to do and could something like that be added to Qt itself? Regards, Gunnar Roth _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest