01.02.2017 17:22, Marc Mutz пишет:
Ah, nevermind, 'found' is a QString_List_.

I'm curious how a non-implicitly-shared string type would help you there,
though. You can always clear() (or, in case of QVector<QString>, std::move())
the string, and capacity is left with the sole owner in the container.

    QString s1;
    s1.reserve(1024);
    s1.resize(100, '*');
    qDebug() << s1.capacity(); // 1024

    QString s2 = s1;
    s1[0] = '-';
    qDebug() << s1.capacity(); // 100
    qDebug() << s2.capacity(); // 1024

With non-implicitly-shared string the capacity of s1 won't change.

The idea of readLineInto() is to avoid memory allocations by writing into the pre-allocated buffer. But when readLineInto() is trying to write into an implicitly shared string buffer, then the content of the buffer is copied and readLineInto() writes into the copy.
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to