首页 > 解决方案 > 在 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 的常规(非强制)内联语法?

标签: c++lambdainline

解决方案


推荐阅读