c++ - lambda 函数是否需要任何头文件?
问题描述
我通常在我的 mac 上编写代码,而且我不擅长包含标题(clang 似乎在这方面有很大的余地)。结果,我经常不知道我使用的提供的函数属于哪个标头。
对于 lambda 表达式,它们是否需要包含任何标头?我检查了https://en.cppreference.com/w/cpp/language/lambda,但我没有看到任何关于此的信息。
解决方案
他们没有。Lambda 是一种语言功能,而不是库功能。您可以将它们绑定到std::function
其中,<functional>
但您不必这样做。
您可以轻松验证这一点,尽管不包含任何标头,但以下代码仍按预期编译:
int main() {
auto f = [](){};
f();
}
推荐阅读
- angular - Angular 7:将 HTML 转换为 PDF
- angular - 如何在使用角度服务工作者时指定要缓存的特定 URL?
- linux - 如何修复此 libgcrypt 交叉编译错误?
- node.js - 为 frontend-maven-plugin maven 更新节点版本时出现问题
- typescript - 用泛型重载静态方法
- java - 如何像whatsapp一样自定义android pip模式?
- google-signin - 无法使用 Google Auth 登录,403:org_internal
- ajax - 使用 setInterval 加载 .txt 文件后,如何停止使用 AJAX 重新加载它?
- python - 在 python 中解码消息头和正文
- ruby-on-rails - 错误:注销链接中未定义的局部变量或方法“删除”