折叠表达式 () 在哪里?

Where is the fold expression ()?

引用fluentCPP article

下面的代码解释说这个结构继承自几个lambdas,可以从这些lambdas构造,并折叠在using表达式上。

template<typename... Lambdas>
struct overloaded : public Lambdas...
{
    explicit overloaded(Lambdas... lambdas) : Lambdas(lambdas)... {}

    using Lambdas::operator()...;
};

我怀疑括号即 () 表示 c++17 折叠表达式,但我没有看到 using 语句周围有任何括起来的括号。它会如何折叠?

这不是折叠表达式。 class 范围内不能有任何表达式语句。正如您所指出的,折叠表达式语法中没有括号。

这是一个带有参数包扩展的声明。包扩展可以在更多的上下文中使用,而不仅仅是折叠表达式。

what will this statement do?

它将声明

using L::operator();

对于参数包中的每个类型 L Lambdas

Usually using is used same as typedef

这不是该关键字的唯一用例。在此上下文中,它用于将基 class 的成员(函数)引入派生的 class.