如何命名单个函数参数包?

How to name a single function-parameter-pack?

问题很简单 - 我无法在 ISO C++ 文档中找到更好的示例,然后是这个:

template<class ... targs> void func(targs ... args);

但即便如此我也找不到令人满意的解释。这不是我要找的,因为我不关心参数类型。

我想写这样的东西:

void func(auto ... args)
{
    func1(args...); //here 'args' to be expanded
}

但是上面的或其他类似的表示不会在 Clang 下编译。

知道为什么以及如何完成吗?也欢迎引用最新的 ISO C++ 标准。

我想做的是通过我自己的函数实现 'new' 运算符行为,为此我需要传递具有可变大小的构造函数参数,如下所示:

struct x_new
{
    template<class T>
    inline T *allocate(... arg)
    {
        return new T(arg...);
    }
};

暂时无法在 Clang 下编译,我不知道为什么。

像往常一样使用普通模板参数包怎么样?比如

template<typename T, typename... argsT>
T *allocate(argsT... args)
{
    return new T(std::forward<argsT>(args)...);
}