这行代码是错误的,无法编译,我想知道如何修复它。
#include <iostream>
template <typename T>
auto getValue()
{
std::cout << "Enter an integral value: ";
T value{};
std::cin >> value;
// I would do input handing later
return value;
}
int main()
{
auto value1{getValue()};
std::cout << value1 << '\n';
}
请指出,如果有一种方法,使之成为可能,如果是不可能的,那么为什么?
我想从用户那里接收一个整数值,并根据用户输入的值创建一个变量。
例如,如果他们输入56
,那么将创建一个整数变量。如果他们输入56.78
,那么将创建一个double变量,因为它是一个分数值。
1条答案
按热度按时间rxztt3cl1#
类型在编译时是固定的,所以你的代码不能工作。如果你真的需要这样做,那么有几种方法。
double
,double可以保存53位整数而不会丢失精度。1.返回
std::variant
选项2可能看起来像这样: