2015-12-21 80 views
0

我尝试写函数constexpr在这种情况下如何使用constexpr?

constexpr QString c(const QString &columnName); 

但它输出的问题:

封闭类constexpr非静态成员函数的 '即QString 数据库处理器:: C(常量QString的&)常量'不是字面类型 constexpr QString c(const QString & columnName);

我非常不熟悉C++ 11,所以无法解决这个bug。这是什么意思?
P.S.如果我添加static,那么它也会输出问题无效的返回类型'QString'

回答

5

constexpr函数要求其输入参数及其返回类型为literal types,因此必须至少有一个constexpr构造函数。 Qstring(即,返回类型)不会,因此会出现编译器错误。

+0

我不知道......谢谢!我现在读到Qt 4.8支持C++ 11,所以我认为它必须有这个构造函数。或者我不明白什么? –

+1

引用类型是文字类型。在OP的情况下,它是不是字面类型的返回类型,不是吗? –

+0

我现在发现'QStringLiteral'定义,但我不明白如何使用它 –