123456789101112131415161718192021222324252627282930313233343536373839 |
- discard """
- targets: "cpp"
- output: '''(x: 1.0)
- (x: 0.0)'''
- disabled: "true"
- """
- # This cannot work yet because we omit type information for importcpp'ed types.
- # Fixing this is not hard, but also requires fixing Urhonimo.
- # bug #2536
- {.emit: """/*TYPESECTION*/
- struct Vector3 {
- public:
- Vector3(): x(5) {}
- Vector3(float x_): x(x_) {}
- float x;
- };
- """.}
- type Vector3 {.importcpp: "Vector3", nodecl} = object
- x: cfloat
- proc constructVector3(a: cfloat): Vector3 {.importcpp: "Vector3(@)", nodecl}
- # hack around another codegen issue: Generics are attached to where they came
- # from:
- proc `$!`(v: seq[Vector3]): string = "(x: " & $v[0].x & ")"
- proc vec3List*(): seq[Vector3] =
- let s = @[constructVector3(cfloat(1))]
- echo($!s)
- result = s
- echo($!result)
- let f = vec3List()
- #echo($!f)
|