加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 带有lambda和auto的std :: max

发布时间:2020-12-16 07:07:56 所属栏目:百科 来源:网络整理
导读:C 11不应该这样吗? 使用当前的clang编译器(OS X 10.8上的 Xcode 5),它无法编译: std::max_element(group-GetComponents().begin(),group-GetComponents().end(),[](auto a,auto b) { return a.length b.length; }); 错误消息是: Stuff.cp:68:40:函数原
C 11不应该这样吗?
使用当前的clang编译器(OS X 10.8上的 Xcode 5),它无法编译:

std::max_element(group->GetComponents().begin(),group->GetComponents().end(),[](auto a,auto b) { return a.length > b.length; });

错误消息是:
Stuff.cp:68:40:函数原型中不允许’auto’

解决方法

在C 1y中你有通用的lambdas,所以语法将在 clang 3.5中编译.lambda将如下所示:

class /* unnamed */
{
public:
    template<typename T>
    T operator () (T a) const { return a; }
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读