我有一个 SWIG 包装的向量。我怎么知道它包含哪种类型?

I have a SWIG-wrapped vector. How can I tell which type it contains?

在我的 .i 文件中,我有很多这样的矢量模板:

%template(VectorInt) std::vector<int>;

我需要使用其中一个向量,并构造一个该向量包含的任何类型的实例。

我知道我可以获得向量的类型,并使用我对命名约定的了解来计算出与所需类型相同的字符串,并从中调用构造函数。

我不能指望向量不为空。

是否有更可靠的方式获取这些信息?

如果向量已经有元素,从任何元素获取类型信息。

否则,你可以在矢量上调用resize,得到你需要的,然后再调用clear