考虑这个例子:
#include <iostream> #include <functional> // std::function #include <vector> // std::vector #include <algorithm> // std::for_each int main(){ auto adder = [](int x) { return [&](int y) { return x+=y; }; }; std::vector < std::function<int(int)> > vec; vec.push_back(adder(1)); vec.push_back(adder(10)); std::for_each(vec.begin(),vec.end(),[](std::function<int(int)> f){std::cout << f(33) << " ";}); std::cout << std::endl; }
一个期望整数34和43 43和76,但gcc 4.6.0产生“内部编译器错误:分段错误”.代码有什么问题?
编辑:here讨论了其他几个例子.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。