gpt4 book ai didi

C++ 将模板类型限制为数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:15 25 4
gpt4 key购买 nike

我的意思是,我在 C++ 中有一个函数,我想将钱存入一个帐户。这个函数应该能够接受 float 、 double 、整数等,因为这些都是输入的有效形式,因为我只需要一个数字来存入。

因此,我声明:

template <typename type>
void Deposit(type t) {...}

现在我遇到的唯一问题是:从理论上讲,这个类的用户可能会向这个函数传递一个字符或字符串,并且这样做会产生意想不到的后果。我将如何将类型限制为整数、 float 、 double 和短整型?是否可以在函数定义中限制它,以便其他人在使用此函数编程时得到编译器/链接器错误,而不必使用 try{...} catch(...){...} ?

最佳答案

您需要什么 std::is_arithmetic将模板类型限制为算术类型(整数或 float )。你可以像这样使用它

template <typename T, typename std::enable_if<std::is_arithmetic<T>::value>::type* = nullptr>
void Deposit(T t) {...}

关于C++ 将模板类型限制为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44848011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com