123456789101112131415161718192021222324252627282930313233343536373839 |
- discard """
- action: "compile"
- targets: "cpp"
- cmd: "nim cpp $file"
- """
- # see #21505: ensure compilation of imported C++ objects with explicit constructors while retaining default initialization through codegen changes due to #21279
- {.emit:"""/*TYPESECTION*/
- struct ExplObj
- {
- explicit ExplObj(int bar = 0) {}
- };
- struct BareObj
- {
- BareObj() {}
- };
- """.}
- type
- ExplObj {.importcpp.} = object
- BareObj {.importcpp.} = object
- type
- Composer = object
- explObj: ExplObj
- bareObj: BareObj
- proc foo =
- var composer1 {.used.}: Composer
- let composer2 {.used.} = Composer()
- var composer1 {.used.}: Composer
- let composer2 {.used.} = Composer()
- foo()
|