Зависимость шаблона времени выполнения в C ++ - PullRequest
1 голос
/ 01 ноября 2011

Предположим, у меня есть некоторый класс Factory:

class Factory
{
 public:
 Factory();
 virtual ~Factory();

 /*
  some factory methods
 */
}

Все методы создают объекты в соответствии со строкой, заданной в качестве параметра.Но один из этих методов создает объекты, которые зависят от параметра шаблона, например:

template <typename Tp>
some_class<Tp>* fac_meth(string str);

Фактический тип будет определен во время выполнения.
Возможно ли сделать такую ​​вещь?

1 Ответ

4 голосов
/ 01 ноября 2011

Одним словом: нет.

Другими словами: во время компиляции время все экземпляры этого шаблона функции будут выполнены (т.е. компилятор определит все различные экземпляры этой функцииэто необходимо для разных типов [например, some_type<int*>, some_type<double*> и т. д.])

Рассмотрим полиморфизм во время выполнения (то есть иерархию наследования) для чего-то подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...