C++ 标准::最大值,带lambda和自动
C++11难道不可能做到这一点吗?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:函数原型中不允许使用
使用当前的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时,这难道不可能吗?这就是在这个特定的上下文(模板算法)中可以从集合的类型推断出的内容,对吗?