自动变量作为函数参数,仅使用 > C++11

auto variable as a function parameter with > C++11 only

本文关键字:gt C++11 变量 参数 函数      更新时间:2023-10-16

IIUC,我不能在C++11中使用auto变量作为函数参数,但在C++14中可能会使用。

这是真的吗?

我相信无论是谁关闭它都是错误的——gcc-4.9甚至不符合C++11,也绝对不是C++14。那么,在这种情况下,答案有什么帮助呢?

在lambda中,是。

lambda表达式可以使用auto作为C++14中的函数参数类型。

来自微软开发者网络Lambada Expressions C++

在C++14中,如果参数类型是泛型的,则可以使用auto关键字作为类型说明符。这告诉编译器创建函数调用运算符作为模板。参数列表中的每个auto实例都等效于一个不同类型的参数

auto y = [] (auto first, auto second)
{
    return first + second;
};

在C++14中,ISO C++仍然禁止将其作为通用函数参数。编译器会给你错误。

简而言之,您不能在一般函数中使用它。您只能在lambda函数中使用它。