我可以在 C++ 内联中定义函数吗?我说的是 lambda 函数,而不是导致编译器优化的 inline
关键字。
原文由 danijar 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不知道我是否理解你,但你想要一个 lambda 函数?
http://en.cppreference.com/w/cpp/language/lambda
#include <vector>
#include <iostream>
#include <algorithm>
#include <functional>
int main()
{
std::vector<int> c { 1,2,3,4,5,6,7 };
int x = 5;
c.erase(std::remove_if(c.begin(), c.end(), [x](int n) { return n < x; } ), c.end());
std::cout << "c: ";
for (auto i: c) {
std::cout << i << ' ';
}
std::cout << '\n';
std::function<int (int)> func = [](int i) { return i+4; };
std::cout << "func: " << func(6) << '\n';
}
如果您没有 c++11x,请尝试:
http://www.boost.org/doc/libs/1_51_0/doc/html/lambda.html
原文由 CyberGuy 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
C++11 为该语言添加了 lambda 函数。该语言的早期版本(C++98 和 C++03)以及所有当前版本的 C 语言(C89、C99 和 C11)都不支持此功能。语法如下:
例如,要计算向量中所有元素的总和: