У меня есть код, который хочет указатель на функцию, но мне нужно называть его чем-то, что делает «новый T (x, y, z)».new T (x, y, z) как функция
я могу написать функцию вдоль линий:
template<T, X, Y, Z>
T* Construct(X x, Y y, Z z) {
return new T(x, y, z);
}
, но мне интересно, если такая вещь существует уже в STL, так как мне нужно сделать это для переменного числа аргументов, и это требует повторения выше , скажем, 10 раз, один раз для каждого числа аргументов, и я бы хотел избежать добавления большого количества шаблонов в файл заголовка.
И, конечно же, 'вернуть станд :: make_ <уникальный/Shar ed> (std: forward (args) ...); ' –
chris
Спасибо, такие работы, но не так, как я ожидал. Мне все еще интересно, существует ли эта функция в STL. Причина, по которой ваше решение не совсем подходит для меня, заключается в том, что мне пока не разрешено использовать вариационные шаблоны в моей кодовой базе. Если бы эта функция уже была в STL, я мог бы ее использовать. – user2557021
@ user2557021: Тогда вы можете рассмотреть решение Kerrek –