【发布时间】:2015-04-08 23:15:39
【问题描述】:
我有一个 C++ 类型,例如:
template <typename T>
class Vector {
struct Iterator {
};
};
在 C++ 中,我可以使用 Iterator 作为 Vector<int>::Iterator。
如何包装它以从 Nim 使用它? c2nim 发射
type Vector[T] {.importcpp...} = object
type Iterator[T] {.importcpp...}
因为 nim 没有嵌套类型而无法编译,并且会生成 Vector<T>::Iterator<T> 而不是 Vector<T>::Iterator。
我可以在 Nim 中使用非嵌套类型:
type VectorIterator[T] {.importcpp: "Vector::Iterator".}
var v : VectorIterator[cint]
而这自然会产生Vector::Iterator<int>,这是错误的(应该是Vector<int>::Iterator)。
有没有办法改变导入规范以产生正确的输出?
【问题讨论】: