gpt4 book ai didi

c++ - 谁能解释这个有线 C++ 代码片段?

转载 作者:行者123 更新时间:2023-11-30 00:50:35 24 4
gpt4 key购买 nike

#define WIRED\
[]() {\
return new MyClass; \
}()

MyClass* a = WIRED;

我不明白 MACRO 中的第一个 []() 和最后一个 ()。有高手能解释一下吗?谢谢。

最佳答案

这是一个 lambda,它返回一个动态分配的 MyClass,它是在适当的位置创建和执行的。

具体来说:

[](){...}

lambda ;剩下的 () 是 lambda 的调用。


这是一个无用的 lambda AFAIK,你可以简单地写:

MyClass* a = new MyClass;

或更好:

std::unique_ptr<MyClass> ptr(new MyClass);

关于c++ - 谁能解释这个有线 C++ 代码片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24523700/

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