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

Chi*_*iel 2 c++ return-type c++14

我想知道在 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;
}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 5

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

所以编译器需要一个显式类型return_five()。您可以通过写入来通知编译器该类型return_five<int>()