在我们的项目中,我们有这样的东西:
struct PointI
{
// methods for getting, setting and calculating some point stuff
private:
int x;
int y;
};
struct PointD
{
// methods for getting, setting and calculating some point stuff
private:
double x;
double y;
};
我建议将其更改为类似的内容:
template<typename T>
struct Point
{
// methods for gettig, setting and calculating some point stuff
private:
T x;
T y;
};
typedef Point<int> PointI;
typedef Point<double> PointD;
typedef Point<float> PointF;
但这被拒绝了,我被告知:“这种方法存在一个问题 - C++ 符号修改和导出。在导出的符号(使用它们的 API)中使用模板时,模板太长了,无法导出模板。”
这个论点是否强大到允许大量代码重复?