eb9c8042cf
In C++17, unqualified lookup doesn't find function templates that require ADL from a call with explicit template arguments, unless another function template of that name is in scope (otherwise, the < is parsed as operator less-than instead). P0846, merged for C++20, fixes this to repeat the name lookup, parsing the < as indicating a template. We have API in Qt (Tuple Protocol for some types, e.g. QPoint) that work for the purpose of Structured Bindings, but don't work for manual unqualified calls when P0846 semantics are missing, and we're adding more, to QVariant, so add a macro to handle the issue. The macro simply declares a function template overload of the given name for a throw-away struct, thereby bringing, for that one name, P0846 semantics into C++17. When we require C++20, we can drop this again. Amends: - |
||
---|---|---|
.. | ||
animation | ||
global | ||
io | ||
ipc | ||
itemmodels | ||
kernel | ||
mimetypes | ||
platform | ||
plugin | ||
serialization | ||
text | ||
thread | ||
time | ||
tools | ||
CMakeLists.txt |