gpt4 book ai didi

c++ - 折叠表达式 () 在哪里?

转载 作者:行者123 更新时间:2023-12-05 01:28:15 24 4
gpt4 key购买 nike

引用 fluentCPP article

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

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

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

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

最佳答案

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

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

what will this statement do?

它会声明

using L::operator();

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

Usually using is used same as typedef

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

关于c++ - 折叠表达式 () 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68833568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com