#include <iostream>
#include <string>
#include <boost/bind.hpp>
void foo(std::string const& dummy)
{
std::cout << "Yo: " << dummy << std::endl;
}
int main()
{
int* test;
std::string bar("platypus");
(boost::bind(&foo, bar))(test, test, test, test, test, test, test, test);
}
Cuando se ejecuta, se imprime, "Yo: ornitorrinco". Parece ignorar por completo los parámetros adicionales. Esperaría obtener un error de compilación. Accidentalmente introduje un error en mi código de esta manera.¿Por qué se puede llamar a una función Boost.Bind con parámetros adicionales?
Todavía me encantaría saber el razonamiento de por qué permitir este comportamiento si alguien se entera :) –
@Joseph: Probablemente demasiado complejo como para no permitirlo explícitamente. –