ue5委托
ue的委托使用宏来进行声明,对参数个数和返回值个数要求不一样可以使用不同的宏来声明。下面是一个有一个返回值,无参数的委托
DECLARE_DELEGATE_RetVal(bool,State_SwapFunc);
值捕捉
s.eS是对象的一个枚举FsmState的字段,这里会返回两个枚举值的比对结果,当我们为这个委托绑定一个值捕获的lamdba表达式时,eS的值会一直保持被捕获时的值,我在捕获之前没有对这个值进行修改,该值是uint类型的最大值。
State_SwapFunc func1; func1.BindLambda([s](){return (s.eS==FsmState::s2);});
引用捕获
引用捕获就是在捕获的时候前面加一个&符。
State_SwapFunc func1; func1.BindLambda([&s](){return (s.eS==FsmState::s2);});
以前一直知道这个知识点,一直使用C#没有想起来,调试了几次才想起这个问题,现记录。
标签:func1,捕获,FsmState,State,表达式,SwapFunc,eS,lambda From: https://www.cnblogs.com/zjr0/p/16981323.html