¿Debería la asignación de función std :: ignorar el tipo de retorno? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Usando `std :: function <void (...)>` para llamar a una función no vacía 3 respuestas¿El código siguiente es C ++ válido de acuerdo con el estándar C ++ 11 o C ++ 14?
#include <functional>
int ReturnInt()
{
return 5;
}
int main( int argc, char **argv )
{
std::function< void () > BoundType = ReturnInt;
return 0;
}
El código se compila bien con las últimas versiones cygwin de gcc (4.8.3) y clang (4.3.2) pero no con Visual Studio 2013, Visual Studio noviembre de 2013 CTP o la vista previa de Visual Studio 14. También se compila en todas las plataformas si std :: function se cambia a boost :: function.
encontréesta otra pregunta de desbordamiento de pila que sugiere que debería funcionar.