This commit is contained in:
Andreas Rumpf
2016-09-13 16:09:50 +02:00
parent 3a5edd2c6c
commit 3710e62241
2 changed files with 23 additions and 1 deletions

View File

@@ -546,7 +546,7 @@ proc getTypeDescAux(m: BModule, typ: PType, check: var IntSet): Rope =
of tyRef, tyPtr, tyVar:
var star = if t.kind == tyVar and tfVarIsPtr notin typ.flags and
compileToCpp(m): "&" else: "*"
var et = t.lastSon
var et = typ.skipTypes(abstractInst).lastSon
var etB = et.skipTypes(abstractInst)
if etB.kind in {tyArrayConstr, tyArray, tyOpenArray, tyVarargs}:
# this is correct! sets have no proper base type, so we treat

View File

@@ -0,0 +1,22 @@
discard """
cmd: "nim cpp $file"
output: '''int
float'''
"""
import typetraits
# bug #4625
type
Vector {.importcpp: "std::vector<'0 >", header: "vector".} [T] = object
proc initVector[T](): Vector[T] {.importcpp: "'0(@)", header: "vector", constructor.}
proc doSomething[T](v: var Vector[T]) =
echo T.name
var v = initVector[int]()
v.doSomething()
var vf = initVector[float]()
vf.doSomething() # Nim uses doSomething[int] here in C++