On Sun, Jun 13, 2021 at 7:14 PM Thiago Macieira <thiago.macie...@intel.com> wrote: > > On Sunday, 13 June 2021 09:20:31 PDT Kevin André wrote: > > I have the following piece of code: > > > > QVector<int> CompatibilityInterfaceImpl::getActionIds() const > > { > > return _actions.keys().toVector(); // _actions is a QHash > > } > > > > In Qt Creator this generates the following warning: > > allocating an unneeded temporary container [clazy-container-anti-pattern] > > > > How can I avoid the warning in this case? > > Create the QVector container, reserve the proper size, and then iterate over > the actions hashing table inserting the keys.
That's the "write my own conversion function" option I listed :-) Since I already had a few existing conversion functions, I opted for your solution: template<typename K, typename V> static QVector<K> keysToVector(QHash<K,V> const& hash) { QVector<K> v; v.reserve(hash.size()); for (auto it = hash.keyBegin(); it != hash.keyEnd(); ++it) v.append(*it); return v; } QVector<int> CompatibilityInterfaceImpl::getActionIds() const { return keysToVector(_actions); } Thanks, Kevin _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest