Hello,
I want to make sure that I'm reading this correctly as an issue in the standard before posting to
w...@edg.com . It could be that I've misunderstood the wording and this is in fact a bug in multiple compilers and not an issue with the standard.
The long story is this blog post of mine:
https://ibob.github.io/blog/2018/08/18/a-bug-in-the-cpp-standard/The short story is that this does not compile with gcc and clang and -std=c++17 (it does compile with msvc but it is not a staple of standard conformance):
https://godbolt.org/z/6NQEU_
Basically I want to set a function of type (parent::*) as a template argument of a function which expects (child::*). There exists an implicit cast between those types. However even when explicitly casting the template argument to (child::*) neither gcc nor clang manage to compile it.
It suspect that the issue is in this text: "If the template-argument represents a set of overloaded functions (or a pointer or member pointer to such), the matching function is selected from the set (13.4)." from N4198
Thanks,
Borislav