On 28/2/23 11:14, Thiago Macieira wrote:
On Monday, 27 February 2023 13:05:01 PST Hamish Moffatt via Interest wrote:
On 28/2/23 04:14, Thiago Macieira wrote:
On Sunday, 26 February 2023 23:24:43 PST Hamish Moffatt via Interest wrote:
Is there a solution?
Remove the const in:
       struct S
       {
const QVector<int> v; // compiles if not const };

If S is not copyable, then QVector can't copy it and QVector requires
copying all its elements.
May I ask why that is? Qt5 QVector and std::vector are both OK with the
above.
Qt 5 QVector is not ok with the above, it just hasn't produced an error *yet*.
All Qt main containers are implicitly-shared and therefore must be able to
copy their elements. Therefore, your elements must be copyable.

std::vector doesn't have this requirement. It is copyable if the element is
copyable, otherwise it isn't.

How and when would Qt5 show an error? We have the above code working and in production, and I'm able resize, copy and change, force a detach - operations where QVector would need to copy elements.


Hamish

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to