【发布时间】:2010-09-18 07:52:33
【问题描述】:
article 描述了一种在 C# 中允许添加具有为它们定义的 + 运算符的任意值类型的方法。本质上它允许以下代码:
public T Add(T val1, T val2)
{
return val1 + val2;
}
此代码无法编译,因为无法保证 T 类型有定义 '+' 运算符,但使用如下代码可以达到效果:
public T Add(T val1, T val2)
{
//Num<T> defines a '+' operation which returns a value of type T
return (new Num<T>(val1) + new Num<T>(val2));
}
点击链接查看 Num 类是如何实现这一点的。无论如何,关于这个问题。有什么方法可以在 C 或 C++ 中实现相同的效果?出于好奇,我试图解决的问题是通过允许 CUDA 内核对更多类型进行操作,从而使其更加灵活/通用。
更新:对于 .NET,Marc Gravell 做了一个utility library,它非常优雅地解决了操作符问题。
【问题讨论】:
标签: c++ c cuda gpgpu value-type