我的意思是,我有一个 C++ 函数,我想将钱存入帐户。这个函数应该能够接受浮点数、双精度数、整数等,因为这些都是有效的输入形式,因为我需要的只是一个要存入的数字。
因此,我宣布:
template <typename type>
void Deposit(type t) {...}
现在我遇到的唯一问题是:理论上,此类的用户可以将字符或字符串传递给此函数,并会产生意想不到的后果。我该如何将类型限制为整数、浮点数、双精度数和短整型?是否可以在函数定义中限制此功能,以便其他人在使用此函数进行编程时得到编译器/链接器错误,而不必使用try{...} catch(...){...}
?
你需要什么std::is_算术将模板类型限制为算术类型(整数或浮点)。你可以像这样使用它
template <typename T, typename std::enable_if<std::is_arithmetic<T>::value>::type* = nullptr>
void Deposit(T t) {...}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)