3

以下のコードを使用して、QRegularExpression から QList に返された一致のリストを返そうとしています。

QList<QString> list();
QString str ("something by the way");
QRegularExpression reA("pattern");
QRegularExpressionMatchIterator i = reA.globalMatch(str);

while (i.hasNext()) {
    QRegularExpressionMatch match = i.next();
    if (match.hasMatch()) {
        list.append(match.captured(0));
    }
}

return list;

...しかし、それは私にこのエラーを示しています:

/home/path/.../file:line# error: request for member 'append' in 'list', which is of non-class type 'QList<QString>()'
         list.append(match.captured(0));

/home/path/.../file:line#: error: could not convert 'list' from 'QList<QString> (*)()' to 'QList<QString>'
 return list;

どうすれば機能するのでしょうか。多くの型にキャストしようとしました。

4

2 に答える 2

3
QList<QString> list();

それは実際には関数です。変数の場合、括弧を省略する必要があります。ただし、通常は括弧を使用してコンストラクターに引数を渡すため、これは混乱を招きます。

そのはず:

QList<QString> list;
// or
QList<QString> list{};
于 2018-05-29T14:14:49.960 に答える