我想知道在 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/