mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
* Expands codegenDecl to work in function params. fixes #22306 * makes the test more concrete so T{lit} params dont match * adds sfCodegenDecl
17 lines
435 B
Nim
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) |