The problem is here:

    converter->register_error_callback( boost::bind(&another_class::log_error, converter, _1) );

The second parameter to bind should be an instance of the class whose member function you're trying to bind to:

It should rather be

    converter->register_error_callback( boost::bind(&another_class::log_error, another_class_instance, _1) );

Under the hood, what will be happening is boost::function will call another_class_instance->log_error(...)

If you think about it, you can't call converter->log_error, since coordinates_converter::log_error doesn't exist.