Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 标准::最大值,带lambda和自动_C++_C++11_Lambda_Auto - Fatal编程技术网

C++ 标准::最大值,带lambda和自动

C++ 标准::最大值,带lambda和自动,c++,c++11,lambda,auto,C++,C++11,Lambda,Auto,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中,您有泛型lambda,因此语法将在中编译。lambda将如下所示:

class /* unnamed */
{
public:
    template<typename T>
    T operator () (T a) const { return a; }
};
class/*未命名*/
{
公众:
模板
T运算符()(ta)常量{返回a;}
};

函数参数类型不能是
auto
。无法推断类型。可能的重复也:
使用C++11时,这难道不可能吗?这就是在这个特定的上下文(模板算法)中可以从集合的类型推断出的内容,对吗?