泛型函数是否可以用于对结构求和
Can a generic function be used for summing structs?
>假设我有一个结构,例如:
struct Foo {
double a;
float b;
int c;
};
fooA
和fooB
(均为 Foo
型)相加等于:
{fooA.a + fooB.a,
fooA.b + fooB.b,
fooA.c + fooB.c};
现在我的问题是,是否可以创建一个通用函数,以这种方式将结构相加? 即:
template <typename StructType>
StructType sumStructs(StructType A, StructType B) {
// sum component with one another, return resulting struct
}
或者,您需要施加哪些限制才能实现?
正如Joachim Pileborg所说,
不,C++没有内省,所以没有办法获得结构 未知结构的成员。
所以我最终做的是为每个结构单独重载+
。这反过来又允许我创建一个泛型函数,该函数接受一个节点,并对其所有父结构求和(例如,用于对位置求和,以获取对象的绝对位置)。
是的,你当然可以。 您还可以重载 + 运算符,并免费获得这种类型的泛型。 C++中有很多想法是这样的。 Less<T>
或begin
和end
免费功能。
相关文章:
- 如何循环打印顶点结构
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 预处理器:插入结构名称中的前一个行号
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 孤立代码块在结构中引发异常
- 有什么方法可以遍历结构吗
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 无法将结构注册为增强几何体3D点
- 多成员Constexpr结构初始化
- C++将文本文件中的数据读取到结构数组中
- 如何重构类层次结构以避免菱形问题
- 如何在C++中序列化结构数据
- std::vector的包装器,使数组的结构看起来像结构的数组
- 没有为自己的结构调用列表推回方法
- 泛型函数是否可以用于对结构求和
- 以通用方式对所有结构成员求和
- 如何对树结构中从子级到根的子值求和
- c++/c结构数组成对求和