【问题标题】:I have a SWIG-wrapped vector. How can I tell which type it contains?我有一个 SWIG 包装的向量。我怎么知道它包含哪种类型?
【发布时间】:2017-02-28 17:05:51
【问题描述】:

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

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

我需要获取这些向量之一,并构造一个该向量包含的任何类型的实例。

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

我不能指望向量不为空。

有没有更可靠的方法来获取这些信息?

【问题讨论】:

  • 没有什么能阻止你拥有一个 boost::any 的向量,它有一个类型映射,这意味着向量的每个元素都有不同的类型。我想你真的想用 Python 写鸭子。
  • @Flexo 这一次让我很高兴我不能使用 Boost。

标签: python c++ swig


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2018-10-03
    相关资源
    最近更新 更多