Tengo una función sobrecargada que quiero pasar junto con una función std ::. GCC4.6 no encuentra una "función de coincidencia". Si bien encontré algunas preguntas aquí, las respuestas no son tan claras como me gustaría. ¿Podría alguien decirme por qué el siguiente código no puede deducir la sobrecarga correcta y cómo (elegantemente) trabajar a su alrededor?Wrap función sobrecargada a través de std :: función
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();
}
Utilice 'static_cast' en lugar del estilo antiguo. – Anonymous
@Anonymous: Sí. Pero quería hacerlo corto. De todos modos, lo edité para que se vea como C++ - ish! – Nawaz
Qué irónico: tiene que usar punteros a funciones para obtener una función std ::, que se introdujo para alejarse de los punteros a las funciones :) thx – abergmeier