只有未指定数量的参数的函数的目的是什么?

What's the purpose of function with only unspecified number of parameters?

换句话说,当函数像这样声明时 'T' 是某种类型别名:

T (...)

会有用吗?

如果您不知道这样的声明指定了一个参数数量未知的函数。 C++ 标准允许它,但它没有为我们提供访问传递参数的标准方法。有 <cstdarg> 库,但它需要省略号前的命名参数才能工作。它看起来像这样(另一个类型别名名为 'T1'):

T (T1, ...)

通常 T1int 类型并指定可变参数的数量。

然而,省略号可以是唯一的函数参数这一事实意味着这种构造有一些目的,我很好奇它是什么?

此类函数的实际示例如下所示:

void func(...)
{
}

一个例子是元编程技巧,它利用了 ... 总是可行的重载但最不受欢迎这一事实。例如,此类型特征检查特定成员 (foo) 是否存在:

template <typename T>
struct has_foo {
    template <typename U>
    static std::true_type test( decltype(U::foo)* );

    template <typename U>
    static std::false_type test( ... );

    using type = decltype(test<T>(0));
};