大佬教程收集整理的这篇文章主要介绍了c – 这个lambda捕获问题是gcc编译器错误吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream> #include <memory> #include <String> int main() { std::shared_ptr<std::string> i = std::make_shared<std::string>("foo"); auto f = [=]() { i.reset(); std::cout << i.get() << "\n"; }; std::cout << i.use_count() << "\n"; f(); std::cout << i.use_count() << "\n"; }@H_673_5@编译错误: @H_673_5@
$g++ -std=c++11 /tmp/foo.cpp /tmp/foo.cpp: In lambda function: /tmp/foo.cpp:11:12: error: passing ‘const std::shared_ptr<std::basic_String<char> >’ as ‘this’ argument of ‘void std::__shared_ptr<_Tp,_Lp>::reset() [with _Tp = std::basic_String<char>; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’ discards qualifiers [-fpermissive] i.reset();@H_673_5@我相信我应该被捕获为一个值,但它似乎被捕获为一个const值. @H_673_5@编译器版本: @H_673_5@
g++ (GCC) 4.9.2 20141101 (Red Hat 4.9.2-1)
以上是大佬教程为你收集整理的c – 这个lambda捕获问题是gcc编译器错误吗?全部内容,希望文章能够帮你解决c – 这个lambda捕获问题是gcc编译器错误吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。