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. -- Thiago Macieira - thiago.macieira (AT) intel.com Cloud Software Architect - Intel DCAI Cloud Engineering
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest