Types
CppConstIterator[ValueType] {.importc.} = object
CppIterator[ValueType] {.importc.} = object
Procs
proc `+`[I: SomeCppIterator](it: I; offset: int): I {.importcpp: "# + #", ...raises: [], tags: [], forbids: [].}
proc `-`[I: SomeCppIterator](it: I; offset: int): I {.importcpp: "# - #", ...raises: [], tags: [], forbids: [].}
proc `==`[ValueType](it, otherIt: CppConstIterator[ValueType]): bool {. importcpp: "# == #", ...raises: [], tags: [], forbids: [].}
proc `==`[ValueType](it, otherIt: CppIterator[ValueType]): bool {. importcpp: "# == #", ...raises: [], tags: [], forbids: [].}
proc `[]`[ValueType](it: CppConstIterator[ValueType]): ValueType {. importcpp: "*#", ...raises: [], tags: [], forbids: [].}
proc `[]`[ValueType](it: CppIterator[ValueType]): var ValueType {. importcpp: "*#", ...raises: [], tags: [], forbids: [].}