Zum Beispiel haben wir einige C++ - Code, wo einige Funktionen eine andere Funktion mit einigen Parametern ausführen.Wie kann man bestimmte überladene Funktionen anzeigen?
#include <iostream>
using namespace std;
template <typename T, typename F>
void todo(const T& param, const F& function)
{
function(param);
}
void foo(int a)
{
cout << a << endl;
}
int main()
{
int iA = 1051;
todo(iA, foo);
return 0;
}
Aber wenn wir noch eine Funktion mit dem Namen hinzufügen foo
void foo(double a)
{
cout << a << endl;
}
Dann Compiler weiß nicht, auf die eine Funktionsvorlage erzeugen.
!!! Wichtig !!!
Dies ist kein echter Code, es ist nur ein Beispiel. Problem konkret in pass reloaded Funktion als Argument.
Kann jemand bestimmte Funktion explizit angeben?
Nun, einfach 'static_cast' funktioniert auch. Ich bin froh, bessere Antworten zu lesen, sie zeigen mir, ich habe so viel noch zu lernen :) – YSC
Wie ich 'static_cast' weiß - ist dynamische Polymorphie, aber Vorlagen ist statisch, wird es nicht funktionieren. –
@KirillRud: Dies ist der idiomatische Weg, es sei denn, ich brauche eine sehr große Tasse Kaffee. – Bathsheba