0

QBuffer::open(OpenMode モード) が false を返す可能性はありますか? 実装は次のとおりです。

bool QBuffer::open(OpenMode flags)
{
    Q_D(QBuffer);

    if ((flags & Append) == Append)
        flags |= WriteOnly;
    setOpenMode(flags);
    if (!(isReadable() || isWritable())) {
        qWarning("QFile::open: File access not specified");
        return false;
    }

    if ((flags & QIODevice::Truncate) == QIODevice::Truncate) {
        d->buf->resize(o);
    }
    if ((flags & QIODevice::Append) == QIODevice::Append) // append to end of buffer
        seek(d->buf->size());
    else
        seek(o);

    return true;
}

bool QIODevice::isReadable() const
{
    return (openMode() & ReadOnly) != 0;
}

bool QIODevice::isWritable() const
{
    return (openMode() & WriteOnly) != 0;
}

私はノーと言うでしょう。私のflexLintコード分析が新しい種類の警告を作成しないように、私はこの調査を行っています。

4

1 に答える 1

1

適切なフラグを指定しないと、falseが返される可能性があります。たとえば、呼び出しQBuffer::open(QIODevice::Text)は、読み取りモードまたは書き込みモードを指定しないため、失敗します。それとは別に、それは常にtrueを返します。

于 2012-10-24T09:09:37.220 に答える