c++ - 这个 lambda 的目的是什么?
问题描述
我在 C++ 代码中看到了以下 lambda。它的目的是什么?
static const auto faster = [](){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
return nullptr;
}();
解决方案
局部static
变量最多由执行其声明的第一个线程初始化一次。通过使用 lambda,我们可以利用这一事实最多运行任意代码一次。第一次到达声明时,到达它的线程将执行 lambda 中的代码,作为初始化变量的一部分。该变量的值可能并未实际使用,但程序会记住该变量已被初始化,因此不会再次运行 lambda。
推荐阅读
- angular - switchMap 然后合并不起作用
- jpeg2000 - JPEG2000 文件结构
- javascript - 如何在 React 中显示进度值
- dialogflow-es - 通过实现文本将参数传递给对话流
- javascript - How to get reference of parent view with respect window
- python - 错误:参数 -s/--source 是必需的
- python - Pandas:为变量的每个不同值查找最后一个非空值
- html - 使用 Internet Explorer 的 Html Google Fonts 字体在希伯来语中不起作用(适用于 Chrome 和 Firefox)
- node.js - 如何通过 Bale Bot 发送照片消息?
- c++ - 在 Google 测试中,我可以从构造函数中调用 GetParam() 吗?