Devo parar de usar classes base abstratas / interfaces e, em vez disso, usar boost :: function / std :: function?

Acabei de aprender sobre o que realmente é a função std :: e para que ela é usada e tenho uma pergunta: agora que basicamente temos delegados, onde e quando devemos usar as Classes base abstratas e quando, em vez disso, devemos implementar polimorfismo via objetos std :: function alimentados a uma classe genérica? O ABC recebeu um golpe fatal em C ++ 11?

Pessoalmente, minha experiência até agora é que alternar delegados é muito mais simples de codificar do que criar várias classes herdadas, cada uma para um comportamento específico ... por isso estou um pouco confuso com a utilidade que as bases abstratas serão a partir de agor

questionAnswers(4)

yourAnswerToTheQuestion