Обернуть перегруженную функцию через std::function

У меня есть перегруженная функция, которую я хочу передать, обернутую в функцию std::. GCC4.6 не находит «функцию сопоставления». Хотя я нашел здесь некоторые вопросы, ответы не так ясны, как хотелось бы. Может ли кто-нибудь сказать мне, почему следующий код не может вычислить правильную перегрузку и как (элегантно)обойти это?

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();
}
8
задан abergmeier 11 April 2012 в 17:35
поделиться