Files
Nim/tests/cpp/tcodegendecl.nim
Juan M Gómez 49a108b302 Expands codegenDecl to work in function params. fixes #22306 (#22307)
* Expands codegenDecl to work in function params. fixes #22306

* makes the test more concrete so T{lit} params dont match

* adds sfCodegenDecl
2023-07-23 16:42:20 +02:00

17 lines
435 B
Nim

discard """
targets: "cpp"
cmd: "nim cpp $file"
output: "3"
"""
{.emit:"""/*TYPESECTION*/
int operate(int x, int y, int (*func)(const int&, const int&)){
return func(x, y);
};
""".}
proc operate(x, y: int32, fn: proc(x, y: int32 ): int32 {.cdecl.}): int32 {.importcpp:"$1(@)".}
proc add(a {.codegenDecl:"const $#& $#".}, b {.codegenDecl:"const $# $#", byref.}: int32): int32 {.cdecl.} = a + b
echo operate(1, 2, add)