Nr
Sie die Frage stellen kann "kann ich anrufen bar.foo
mit int, long
args?". Sie können die Frage stellen "Gibt es eine &Bar::foo
Methode des Typs void (Bar::*)(int, int)
?", Aber keiner entspricht Ihren Anforderungen.
Eine andere Sache, die Sie tun können, ist Perfect Forward in bar.foo
und tun sogar SFINAE Tests so Ausfall führt zu einem Versagen bei der Weiterleitung Schnittstelle zu übermitteln, die nicht in deren Umsetzung.
Wenn Sie eine endliche Liste von Typen und max. Anzahl von Argumenten haben, können Sie die Menge der Überladungen für diejenigen, die funktionieren, oder für exakte Signaturübereinstimmungen zu O (T^N) Kosten auswerten.
Als Editorial hat Ihre Frage den üblichen Fehler bei Fragen dieser Art, wo Sie eine bestimmte technische Herausforderung beschreiben und nicht einmal das Problem, das diese Aufgabe lösen soll, beiläufig beschreiben. Es ist tatsächlich schockierend, wie zuverlässig die "Ich möchte über die Funktionssignaturüberladung nachdenken" -Fragen, niemals, freiwillig, das spezielle Problem, das ihre Reflexion beheben soll. Viele, viele solcher Probleme haben Lösungen, die keine vollständige Reflexion zu lösen brauchen.
Ah, der mythische 'invocation_traits' Vorschlag ... –
@KerrekSB das klingt nicht viel Erleichterung ... –
Welche Art von Schnittstelle erwarten Sie? Wie nur "bar" zur Verfügung stellen und die "Liste" bekommen? Nun, .... – Arunmu