我使用的是 Xilinx Vivado 2020。
如何在没有脚本本身名称的情况下获取 tcl 脚本的路径?
主页
/
user-367616
OnuchinVA's questions
条目之间有什么区别:
int32_t Function1(const int32_t c);
int32_t Function2(const int32_t &c);
int32_t &Function3(const int32_t &c);
一个相当模糊的任务出现了。有一个抽象模块“过滤器”:
template <typename T, typename DelayLineType>
class FilterAbstract
{
public:
explicit FilterAbstract(uint32_t length);
explicit FilterAbstract(const FilterAbstract &object);
FilterAbstract &operator=(const FilterAbstract &object);
virtual ~FilterAbstract() = default;
virtual T Step(const T &value) = 0;
DelayLineType DelayLine;
Vector<T> Coefficients;
};
接下来,我继承具有部分特化的抽象类:
template <typename T>
class FilterOnCircularVectors : public FilterAbstract<T, CircularVector<T>>
{
public:
explicit FilterOnCircularVectors(uint32_t length);
explicit FilterOnCircularVectors(const FilterAbstract<T, CircularVector<T>> &object);
T Step(const T &value) override;
};
现在,除了这样的继承之外,我想通过使用一个类来提供部分特Complex<T>
化,这里对如何在同一个文件中使用相同的名称正确实现它有一个误解:
template <template T>
class FilterOnCircularVectors : public FilterAbstract<T, CircularVector<Complex<T>>>
{
public:
explicit FilterOnCircularVectors(uint32_t length);
explicit FilterOnCircularVectors(const FilterAbstract<T, CircularVector<Complex<T>>> &object);
Complex<T> Step(const Complex<T> &value) override;
};
对此有什么想法吗?我真的不想生成标记为 Complex 的类。
UPD:
在 VS2019 中,如果创建两个具有这样的名称和这样的继承的类,则会由于多重定义而发生错误。事实是一个函数应该有不同的Step
行为CircularVector<T>
CircularVector<Complex<T>>