¿Debo dejar de usar clases / interfaces base abstractas y en su lugar usar boost :: function / std :: function?

Acabo de enterarme de qué trata realmente std :: function y para qué se utiliza, y tengo una pregunta: ahora que esencialmente tenemos delegados, dónde y cuándo debemos usar las clases base abstractas y cuándo, en su lugar, deberíamos implementar polimorfismo a través de objetos std :: function alimentados a una clase genérica? ¿Recibió ABC un golpe fatal en C ++ 11?

Personalmente, mi experiencia hasta ahora es que cambiar delegados es mucho más simple de codificar que crear múltiples clases heredadas cada una para un comportamiento particular ... así que estoy un poco confundido sobre cuán útiles serán las Bases abstractas a partir de ahora.

Respuestas a la pregunta(4)

Su respuesta a la pregunta