blob: 81defcb58e8dab5a011e31f4c09e5946831d4291 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
discard """
cmd: "nim cpp $file"
output:'''
cppNZ.x = 123
cppNZInit.x = 123
hascpp.cppnz.x = 123
hasCppInit.cppnz.x = 123
hasCppCtor.cppnz.x = 123
'''
"""
{.emit:"""/*TYPESECTION*/
struct CppNonZero {
int x = 123;
};
""".}
import sugar
type
CppNonZero {.importcpp, inheritable.} = object
x: cint
HasCpp = object
cppnz: CppNonZero
proc initCppNonZero: CppNonZero =
CppNonZero()
proc initHasCpp: HasCpp =
HasCpp()
proc ctorHasCpp: HasCpp {.constructor.} =
discard
proc main =
var cppNZ: CppNonZero
dump cppNZ.x
var cppNZInit = initCppNonZero()
dump cppNZInit.x
var hascpp: HasCpp
dump hascpp.cppnz.x
var hasCppInit = initHasCpp()
dump hasCppInit.cppnz.x
var hasCppCtor = ctorHasCpp()
dump hasCppCtor.cppnz.x
main()
|