On 2019-07-12 22:37, Matthew Woehlke wrote:
[...]
So, perhaps you should suggest a more specific example?

I did: replace and relational operators. And you're right to look at startsWith(), because that is indeed binary (*this being the first argument). And it's also one which is thoroughly view-enabled. But this just means that my replace() math was wrong: it's not binary, it's ternary (*this, before, after) and that means not 16 vs. 25 overloads, but 64 vs. 125 overloads. And that _is_ with views enabled (as per, QtPrivate::startsWith() (QChar arguments are handled one level up, and converted to a QStringView argument).

And speaking about startsWith(): if you drill down through the templates, you will end up in qt_compre_strings, which is not templated, and even if it could be today, which would be rather pointless, you just drill one more level down and end up in ucstrncmp etc, which are oh so far away from ever being templates...

So, as you can see, we're already using templates where it makes sense, but at some point you do need to go into the gritty details, and then it's assembler, not templates.

Thanks,
Marc
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to