If the data contained in the model is all of basic types or implicitly shared types then it's possible to already use the current framework without ever triggering any expensive* copy
, to point 2:
There's no clarity on how to support different types in different roles
would we need an additional template argument for each used role beyond Qt::UserRole? is so the problems above grow exponentially with the roles
And to point 3:
No possible implementation for a reliable dataChanged emission if model internals are exposed directly
*expensive = a copy that implies more that a:
memcpy of less than 65bits and
an increase/decrease of a numeric reference counter
Would you like to distinguish any more between the usage of one- and two-dimensional structures for data models?
Nope, the 2 dimensional structure is strictly more general of the 1D version so anything that goes for the first works in the second case.
You have been discussing a lot of theoretical problems relating to models across different threads. In all of them the feeling has been that you are uselessly overcomplicating things.
I feel it would be useful for you and easier for us to walk you through a concrete example of what you are trying to achieve rather than discuss endlessly on theoretical concepts.