我试图在不知道其类型的情况下将模板派生类转换为父类。
这是我拥有的代码的简化:
/* Base Class */
class Base {};
/* Templated derived Class */
template<typename T>
class ATemplate : public Base {
public:
T GetData();
private:
T _data;
};
/* Derived class */
template<typename T>
class Derived : public ATemplate<T> {
};
void main() {
std::vector<Base*> vector;
vector.push_back(new Derived<int>());
for (auto var : vector) {
if (dynamic_cast<ATemplate</* I don't know the type of this class*/>>) {
/* Do stuff */
}
}
}
我有一个Base列表,我想将该列表的每个类动态广播到ATemplate。
我不想为我创建的每种类型都投一个演员。一位朋友(cc killian.G)告诉我,我也许可以使用std :: variant。 有人知道我在问什么是可能的吗?