在 Java 中,我可以在不指定类型的情况下定义泛型类的变量。
class Tree<T extends Comparable<? super T>> {}
somewhere-else: Tree tree;
然后我可以从文件中读取一些对象并将其类型转换为我想要的类类型。
tree = (Tree<String>) some object;
我boost::variant
已经开始了一个变体定义。
typedef boost::variant<Tree<std::string>, Tree<int>> TreeVariant; TreeVariant tree;
我知道我需要指定 avisitor class
但从这个示例中不清楚如何定义它以便我能够分配给我的tree
变量Tree<std::string>
or Tree<int>
。
然后我想从那里继续使用变量调用 Tree 的成员函数tree
。