我有一个 C++ 类型,如:
template <typename T>
class Vector {
struct Iterator {
};
};
在 C++ 中,我可以使用Iterator
as 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
)。
有没有办法改变导入规范以产生正确的输出?