[Development] templated QObjects [was: Re: We are planning to upgrade qdoc to use clang for parsing C++]
Mathias Hasselmann
mathias at taschenorakel.de
Mon Feb 29 17:58:38 CET 2016
Am 25.02.2016 um 19:22 schrieb Milian Wolff:
> Can you explain what those reasons are? I'd really love to write a generic
> QAbstractTableModel implementation that operates using concepts. Currently
> that would require type erasure and thus another set of virtual function
> calls...
>
> I.e. in many projects I end up writing the same boiler plate code to display a
> QVector<MyRowType> in a view. As far as I can see most of that could be
> abstracted away easily, leaving only slim concepts to the struct:
>
> struct MyRowType {
> QString foo;
> int bar;
> QVariant data(int column, int role) const
> {
> if (!role == Qt::DisplayRole) return {}
> switch (column) {
> case 1: return foo;
> case 2: return bar;
> }
> return {};
> }
> };
Yes, please! Writing the almost same list model over and over again is
boring. Although MyRowType::data() should not be a member, but a
free-standing function to allow any type to be used as row data type.
> If we'd have templates QObjects, the above could easily be written. I bet
> there are other valid use-cases.
QFutureWatcher comes to mind. Regularly using its pattern in projects
and would prefer I could avoid this boilerplate.
Ciao,
Mathias
More information about the Development
mailing list