gpt4 book ai didi

C++ 闭包 hack

转载 作者:可可西里 更新时间:2023-11-01 17:37:33 26 4
gpt4 key购买 nike

这样的闭包实现有什么问题吗(从python hack中偷来的)?

void function(int value) {
struct closure {
closure(int v = value) : value_(value) {}
private: int value_;
};
closure c;
}

进一步研究发现,在成员函数中,局部变量不能作为默认值,但对象变量可以。

最佳答案

这看起来是结束的良好基础。更多的是成语而不是 hack,因为您合法地使用语言功能来实现其预期目的。

当然,您的示例不会执行任何操作。并且它只能在 function 中使用。

免费的 C++0x 插件:

#include <functional>

void some_function( int x ) { }

void function( int value ) {
struct closure {
std::function< void() > operator()( int value )
{ return [=](){ some_function( value ); }; }
};

auto a = closure()( value );
auto b = closure()( 5 );

a();
b();
b();
}

关于C++ 闭包 hack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614170/

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