c++ - 有什么方法可以对不同类型的变量进行相同的计算,只需一个函数?
问题描述
假设我有一些不同类型的变量,它们需要相同的计算。例如:
int func(int a, int b)
{
return a+b;
}
QVector3D func(QVector3D a, QVector3D b)
{
return a+b;
}
这两个函数中所做的操作可能非常复杂,但实际上它们只是针对不同类型的参数进行相同的计算,并返回不同类型的值。有没有办法在 c++ 中为这些不同类型的变量编写一个函数?
解决方案
扩展 rtpax 的注释,您可以编写一个模板函数来执行具有两种任意类型(相同类型或其他类型)的“+”运算符。要求是对于所使用的类型组合,必须存在“+”运算符。
template <typename T, typename K>
auto foo(T _a, K _b ) -> decltype(_a + _b) {
return _a + _b;
}
函数签名的英文版本是:一个函数 foo,它有两种类型,T 和 K,其中返回类型是操作 T + K 的返回类型。
推荐阅读
- python - pyinstaller 和 googleclinetapi 的问题
- javascript - 用快捷方式依次打开
- sql - 如何获取 sql 表中两个条件之间的行?
- r - R ggplot 脚本
- amazon-web-services - How to setup amazon to use Grid computing with maple software that is in existing EC2?
- reactjs - useEffect 中的异步等待 api 调用被调用两次
- ios - iOS 14 中的新日历视图导致 webview 页面被上推
- header - glibc 项目中的“bits”目录代表什么?
- eslint - ESLint no-use-before-define with Svelte
- java - 处理 jFrame 后如何记住用户数据?