File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed
Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -89,7 +89,7 @@ when defined(cpp) or defined(nimdoc):
8989 # # with other moSequentiallyConsistent operations.
9090
9191 type
92- Atomic * [T] {.importcpp : " std::atomic" , completeStruct .} = object
92+ Atomic * [T] {.importcpp : " std::atomic" , completeStruct , requiresInit .} = object
9393 # # An atomic object with underlying type `T`.
9494 raw: T
9595
Original file line number Diff line number Diff line change 1+ discard """
2+ targets: "cpp"
3+ action: reject
4+ errormsg: "The PledgeObj type requires the following fields to be initialized: refCount"
5+ """
6+
7+ import atomics
8+
9+ type
10+ Pledge * = object
11+ p: PledgePtr
12+
13+ PledgePtr = ptr PledgeObj
14+ PledgeObj = object
15+ refCount: Atomic [int32 ]
16+
17+ proc main () =
18+ var pledge: Pledge
19+ pledge.p = createShared (PledgeObj )
20+ let tmp = PledgeObj () # <---- not allowed: atomics are not copyable
21+
22+ pledge.p[] = tmp
23+
24+ main ()
You can’t perform that action at this time.
0 commit comments