vendredi 23 février 2018

Is it possible to deduce the signature of the resolved method/function overload even in case of implicit parameters conversions?

Say we have

struct Test {
    void foo(int *);
    void foo(float);
} test;

Given the the following method call:

test.foo(1);

The compiler will resolve it by invoking Test::foo(float), doing the implicit conversion from int to float.

Is it possible to somehow get the signature of the thus resolved method overload as a pointer type, i.e. void (Test::*)(float)?

The closest thing to a positive I could get is the answer to another question, however that approach will fail in case of an implicit conversion of one or more parameters.

Aucun commentaire:

Enregistrer un commentaire