使用"auto;"进行类型推断
Type Inference with "auto;"
-
来自维基百科
关键字
auto
有什么用在这种情况下(如下(,如果不是自动类型扣除?struct SomeStruct { auto func_name(int x, int y) -> int; }; auto SomeStruct::func_name(int x, int y) -> int {return x + y; }
-
需要在哪些情况下显式具有类型?
这是尾随返回类型。auto
只是一个占位符,表示返回类型稍后出现。
这样做的原因是,参数名称可以用于计算返回类型:
template<typename L, typename R>
auto add(L l, R r) -> decltype(l+r) { return l+r; }
替代方案是:
template<typename L, typename R>
decltype(std::declval<L>()+std::declval<R>())
add(L l, R r)
{ return l+r; }
很可能,该语言的未来添加将允许省略尾随返回类型,而使用lambdas允许的自动类型推导。
template<typename L, typename R>
auto add(L l, R r) { return l+r; }
相关文章:
- 推理类型如何工作"auto"和按引用调用?
- 将函数参数类型声明为 auto
- 使用constexpr + auto作为返回和参数类型的奇怪类型推导
- 使用"auto"推断嵌套初始值设定项列表的类型
- "auto"推断出 hashtable_policy.h 中的错误类型
- 为什么"const auto [x, y]"绑定到引用类型时没有按预期运行?
- 对'auto'扣除类型的困惑
- 如果使用返回引用的函数初始化"auto"var,为什么它不声明引用类型?
- decltype(auto) 是否使尾随返回类型过时?
- 用 decltype 和 auto 推导出 const(返回)类型
- 警告:函数使用不带尾随返回类型的'auto'类型说明符
- 在 Objective-C++ 中应用于__weak指针时,通过关键字推导类型"auto"规则是什么?
- decltype(auto) 类型演绎:返回 x 与返回 (x)
- C++:在原型中声明"auto"函数返回类型仍然会导致在扣除错误之前使用"auto&quo
- 我可以在动态知道其类型的模板类对象中使用 auto 关键字吗?我不能在没有初始值设定项的情况下使用 auto 关键字吗?
- C++14 'auto'能够获取函数返回类型,我们还需要 std::result_of<> 吗?
- 声明适用于 auto,但不能显式声明类型?
- 如何在编译时决定'auto'返回类型?
- 为什么在auto和template函数的情况下,类型都没有推导为"const"类型
- 调用的对象类型'auto'不是函数或函数指针