mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
* fixes an issue where byref wasnt properly handled when using it in a generic param * removes unreachable check
27 lines
471 B
Nim
27 lines
471 B
Nim
discard """
|
|
targets: "cpp"
|
|
cmd: "nim cpp $file"
|
|
"""
|
|
{.emit:"""/*TYPESECTION*/
|
|
|
|
template<typename T>
|
|
struct Box {
|
|
T first;
|
|
};
|
|
struct Foo {
|
|
void test(void (*func)(Box<Foo>& another)){
|
|
|
|
};
|
|
};
|
|
""".}
|
|
|
|
type
|
|
Foo {.importcpp.} = object
|
|
Box[T] {.importcpp:"Box<'0>".} = object
|
|
first: T
|
|
|
|
proc test(self: Foo, fn: proc(another {.byref.}: Box[Foo]) {.cdecl.}) {.importcpp.}
|
|
|
|
proc fn(another {.byref.} : Box[Foo]) {.cdecl.} = discard
|
|
|
|
Foo().test(fn) |