Contêiner que armazena uma mistura de objetos base e derivados?

Qual é a coisa certa a fazer? Eu sei que, se o contêiner for do tipo de valor de classe base, o objeto derivado armazenado será 'fatiado'. Se container for do tipo de classe derivada, o objeto de classe base não poderá ser armazenado. Certo?

Se para ir com ponteiros, o auto_ptr não pode ser usado porque tem o problema semântico da cópia. É shared_ptr as únicas soluções para lidar com esse problema?

Alguém poderia fornecer mais detalhes, código de exemplo ou artigos on-line que abordem esse problema? Deve ser uma questão bastante comum, no entanto eu não encontrei muita informação sobre isso no livro ou on-line.

Desde já, obrigado.

btw, eu apenas pesquiso em unique_ptr. Não parece apoiar a semântica da cópia. Portanto, não é apenas seguro que o auto_ptr seja usado no STL, mas talvez devido à falta de cópia semântica, muitas operações ou algoritmos STL não podem ser usados ​​no container de unique_ptr?

questionAnswers(4)

yourAnswerToTheQuestion