gpt4 book ai didi

c++ - C++ 11中auto关键字中的编译错误

转载 作者:行者123 更新时间:2023-12-03 07:07:05 25 4
gpt4 key购买 nike

我知道使用auto关键字可以自动从右值推导出变量的类型。那为什么我的代码中下面的函数片段会出现编译错误呢?

auto getName(auto str = "John Doe") {
return str;
}
编译错误是函数原型(prototype)中不允许“自动”。我用谷歌搜索了一下,我认为 auto不能在函数原型(prototype)中使用。为什么这样?

最佳答案

您可以使用 auto在 lambda 表达式中,但不是普通函数。
为了得到同样的效果,你可以定义一个函数模板来代替:

template <class T>
T getname(T input = "John Doe") {
return input;
}
但请注意,该参数的默认值仅适用于实际上可以从字符串文字初始化的类型。
哦,顺便说一句,名称以 str 开头是保留的,所以最好使用不同的名称。

关于c++ - C++ 11中auto关键字中的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64709245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com