C ++ std :: function не может найти правильную перегрузку

Рассмотрим следующий случай:

void Set(const std::function<void(int)> &fn);
void Set(const std::function<void(int, int)> &fn);

Теперь вызов функции с помощью

Set([](int a) {
    //...
});

дает ошибку "неоднозначный вызов перегруженной функции". Я с помощью Visual Studio 2010. Есть ли обходной путь или другой метод для достижения чего-то подобного. Я не могу использовать шаблоны, , потому что эти функции сохраняются для дальнейшего использования , потому что я не могу определить количество параметров в этом случае. Если вы спрашиваете, я могу предоставить более подробную информацию.

14
задан Cem Kalyoncu 8 November 2011 в 16:31
поделиться