gpt4 book ai didi

C++11 和多态 lambda 的缺失——为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:07 25 4
gpt4 key购买 nike

我一直在审阅 C++11 的草稿版本标准。特别是关于 lambdas 的部分,我对不引入多态 lambda 的原因感到困惑。

例如,在可以使用多态 lambda 的 100001 种方式中,我曾希望我们可以使用如下代码:

template<typename Container>
void foo(Container c)
{
for_each(c.begin(), c.end(), [](T& t) { ++t; });
}

原因是什么:

  • 是委员会没时间了吗?

  • 多态 lambda 太难实现了?

  • 或者可能是 PTB 不需要它们?

注意:请记住上面的例子不是唯一的例子,它只是作为代码类型的指南提供的。仅专注于为上述代码提供解决方法的答案将被视为无效!

相关资源:

最佳答案

我们没有多态 lambda 的原因在 this posting 中有很好的解释。 .

它与从 C++11 中提取的概念特性有关:本质上,多态 lambda 是普通的、无约束的函数模板,我们不知道如何对使用无约束模板的概念约束模板进行类型检查。然而,事实证明解决这个问题很容易,如图所示 here (死链接),所以我认为没有任何障碍。

到 cpp-next 的链接已经失效;相关资料可见here

关于C++11 和多态 lambda 的缺失——为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4803602/

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