Überladene Funktion über die Funktion std :: umbrechen

Ich habe eine überladene Funktion, die ich eingewickelt in eine std :: -Funktion weitergeben möchte. GCC4.6 findet keine "Matching-Funktion". Obwohl ich hier einige Fragen gefunden habe, sind die Antworten nicht so klar, wie ich sie gerne hätte. Könnte mir jemand sagen, warum der folgende Code nicht die richtige Überladung ableiten kann und wie man (elegant) damit umgeht?

<code>int test(const std::string&) {
    return 0;
}

int test(const std::string*) {
    return 0;
}

int main() {
    std::function<int(const std::string&)> func = test;
    return func();
}
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage