Этого нельзя сделать.Компилятор должен знать заранее, сколько различных виртуальных функций (и перегрузок) будет доступно, но в вашем случае вы рассматриваете возможность добавления новых виртуальных функций-членов по требованию на основе новых потенциальных экземпляров производного типа.
В большинствеВ некоторых случаях хранение совершенно не связанных между собой объектов в одном и том же контейнере не является хорошим вариантом проектирования, но в тех немногих случаях, когда это действительно так, вы можете использовать типы вариантов (рассмотрите boost :: any или boost :: option, в зависимости от ваших реальных требований.Это связанная, протестированная реализация типа варианта, который вы могли бы использовать напрямую.