在函数参数中使用auto关键字是否可以?

Des*_*tor 1 c++ auto c++11

我知道auto关键字的含义已完全从C++ 11中改变.但是最近我编写了一个简单的程序,在编译=std=c++98选项时可以编译和运行.

#include <iostream>
void fun(auto int a)
{   
    a=3;
    std::cout<<a<<'\n';
}
int main()
{
    fun(3);
}
Run Code Online (Sandbox Code Playgroud)

Orwell Dev C++ IDE给出了如下警告:

[Warning] 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
Run Code Online (Sandbox Code Playgroud)

那么,auto用于函数参数是否可以,或者我是否应该auto像上面的程序一样使用它来保持与C++ 11的兼容性?

Jen*_*ens 6

在C++ 11之前,auto关键字是"存储类说明符",而对于C++ 11,它变成了类型感应说明符.

回答你的问题:根据你用来编译代码的C++标准,相应地调整auto关键字的使用.它不能在C++标准的前/后C++ 11边界上移植.