【发布时间】:2018-12-01 05:56:18
【问题描述】:
我仍在解决几个小时前发布的这个问题: [How to overload/specialize template class function to handle arithmetic types and a container-class 我试图实现这个解决方案。它可以编译,但对象是使用 DerivedClass-Constructor 而不是部分专用模板类 DerivedClass 创建的 你有什么想法我犯了一个(或一些)错误吗?
template <typename T> class BaseClass
{
protected:
T mem;
public:
BaseClass(T arg) : mem(arg){};
};
template <typename T> class DerivedClass : public BaseClass<T>
{
public:
DerivedClass(T arg): BaseClass<T>(arg){};
};
template <typename T>
class DerivedClass<Eigen::ArrayBase<T> >
: public DerivedClass<Eigen::ArrayBase<T> >
{
public:
DerivedClass(Eigen::ArrayBase<T> arg):BaseClass<Eigen::ArrayBase<T> >(arg){};
};
int main
{
...
Eigen::Array3d arg = Array3d::Random(3);
DerivedClass<Eigen::Array3d> o(arg);
....
}
【问题讨论】:
标签: c++ templates partial specialization