立即执行函数
1.
connect(&m_configAutoTstTimer, &QTimer::timeout, [&]()
{if (!m_isConfigChanged)
{
slotUpdateConfig((m_devFlags & (~(1 << BITNUM_MAINDSP))));
return;
}
qDebug("m_devAcked=%08x, m_devWait=%08x, m_devMainWait=%08x",
m_devAcked, m_devWait, m_devMainWait);
});
2.
const std::vector<uint32_t>& AES_TE()
{
auto compute_TE = []() -> std::vector<uint32_t> {
std::vector<uint32_t> TE(1024);
for(size_t i = 0; i != 256; ++i)
{
const uint8_t s = SE[i];
const uint32_t x = make_uint32(xtime(s), s, s, xtime3(s));
TE[i] = x;
TE[i+256] = rotate_right(x, 8);
TE[i+512] = rotate_right(x, 16);
TE[i+768] = rotate_right(x, 24);
}
return TE;
};
static const std::vector<uint32_t> TE = compute_TE();
return TE;
}
https://www.cnblogs.com/pzhfei/archive/2013/01/14/lambda_expression.html
根据场景选择是否用匿名函数
比如在回调里:
可以选择用,因为它的名字没有那么重要:http.createServer(function(req, res) {
// do something...
});
但是有些人喜欢分离回调函数:
http.createServer(callback);
function callback(req, res) {
// do something...
}
匿名函数不适合使用的场景之一就是调试,