【发布时间】:2021-11-04 14:27:39
【问题描述】:
当函数调用多个类型参数时,如何替换函数参数中的 auto 关键字?因为我想使用-std=c++11,而我在 omnet++ 中遇到了这个错误:
**error: use of auto in parameter declaration only available with -std=c++14 or -std=gnu++14**
void get_index(auto s_arra[], auto elem) {
...
}
void main() {
get_index(float array1, float var1);
get_index(int array2, int var2);
}
【问题讨论】:
-
您切换到使用 C++20 之前的模板。
-
auto在函数声明中是 C++20,而不是 C++14。通用 lambda 虽然是 C++14。 gcc 错误消息在这里具有误导性。 -
既然你传递
float数组和值,使用float而不是auto?或者,如果您希望函数更通用,那么可能是模板? -
制作模板
-
你不能在函数参数前加上
float这样的类型名称。