c++ - 在 C++ 中是否有内联 lambda 的属性?
问题描述
在 GCC/Clang 中,可以编写强制内联 lambda:
auto f = [](auto & x) __attribute__((always_inline)) { ++x; };
在 MSVC 中,同样可以通过以下方式实现:
auto f = [](auto & x) [[msvc::forceinline]] { ++x; };
在线尝试上述内联技术。
我的问题是 GCC/CLang/MSVC 中是否存在用于 lambda 的常规内联(非强制)的类似语法,就像常规函数一样,同时存在inline
和__attribute__((noinline))
.
我知道对于现代编译器来说,是使用内联还是强制内联并没有太大区别。在这两种情况下,它只是对编译器的提示,它可能会也可能不会进行实际的内联。但据我所知,常规内联是一个较弱的提示,而强制内联是一个更强的提示,不是吗?
所以我只是好奇是否存在 lambda 的常规(非强制)内联语法?
解决方案
推荐阅读
- javascript - React 中 refs 的实际用法是什么?
- sql - How can I split the product quantity based on a group quantity
- java - Mergesort 的这个合并函数是占用 O(1) 空间还是 O(n) 空间?
- python-3.x - 无法在 Windows 上的 Git Bash 中安装 pylint(Windows 应用商店)
- python - 无法导入名称 LoginView
- spring - 如何使用休息调用在一对一映射中更新父表时更新子表
- jsf - 菜单操作后在另一个页面中打开页面
- visual-studio-code - 用于 React 开发的 VSCode 远程服务器?
- android - 屏幕旋转时如何在recyclerview中保存状态数据
- r - 在数据表中按组非 equi 自连接