[Interest] use of deleted function errors in QList / qarraydataops.h

Hamish Moffatt hamish at risingsoftware.com
Tue Feb 28 01:22:46 CET 2023


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



More information about the Interest mailing list