Sak*_*war 1 c++ function function-prototypes auto c++11
我知道使用auto关键字可以自动从 Rvalue 推导出变量的类型。那为什么我的代码中下面的函数片段会出现编译错误呢?
auto getName(auto str = "John Doe") {
return str;
}
Run Code Online (Sandbox Code Playgroud)
编译错误是函数原型中不允许的“自动”。我用谷歌搜索了一下,我认为auto不能在函数原型中使用。为什么这样?
您可以auto在 lambda 表达式中使用,但不能在普通函数中使用。
为了获得相同的效果,您可以定义一个函数模板:
template <class T>
T getname(T input = "John Doe") {
return input;
}
Run Code Online (Sandbox Code Playgroud)
但请注意,该参数的默认值仅适用于实际上可以从字符串文字初始化的类型。
哦,顺便说str一句,以开头的名字是保留的,所以最好使用不同的名字。
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |