c++ - C++14 赋值中的返回类型推导

标签 c++ c++14 return-type

我想知道在 C++14 中是否可以某种方式在赋值中进行返回类型推导。输入 <int> 感觉多余在return_five之后函数名称。因此,换句话说,编译器可以使用赋值左侧的信息吗?

#include <iostream>
#include <string>

template<typename T>
auto return_five()
{
    return static_cast<T>(5);
}

int main()
{
    int five_int = return_five();         // THIS DOES NOT WORK
    // int five_int = return_five<int>(); // THIS WORKS

    std::cout << "Five_int = " << five_int << std::endl;

    return 0;
}

最佳答案

C++ 不是 VBA:赋值左边的东西用来推断右边的类型

因此编译器需要 return_five() 的显式类型.您通过编写 return_five<int>() 通知编译器类型.

关于c++ - C++14 赋值中的返回类型推导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39017200/

相关文章:

c++ - 在 C++ 中返回 vector 数组

c++ - 使用 std::transform 最终 vector 保持为空

c++ - 隐藏的依赖项的继承属性?

c++ - 将 lambda 作为参数传递 - 通过引用或值?

java方法返回类型

c++ - map 实现中的列表迭代器实现 - 麻烦

c++ - 为什么序列化指令本质上是流水线不友好的?

php - php 中一个函数是否可以返回 2 个或多个不同数据类型的值?

c++ - 为什么我不能拥有与 void* 协变的返回类型?

c++ - 使用迭代器调用STL Set中的非静态函数