-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathTODO
More file actions
36 lines (26 loc) · 1.37 KB
/
TODO
File metadata and controls
36 lines (26 loc) · 1.37 KB
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
Autowrap TODO
=============
- Internal code generator refactor
Consider splitting `CodeGenerator` into smaller, focused classes
(e.g. for class generation, iterator support, reference handling)
to improve maintainability and make future extensions easier.
- Improved iterator support
Support parameterized iterator ranges (e.g. methods like
`beginRT(rtmin)` / `endRT(rtmax)` annotated with `wrap-iter-begin`
/ `wrap-iter-end`) and expose them as dedicated Python iterator or
range methods instead of only supporting parameterless `begin()` /
`end()`.
- Reference semantics for methods returning references
For methods that return references to other wrapped objects, explore
using holder / proxy objects (using the existing
`AutowrapRefHolder` / `AutowrapPtrHolder` infrastructure) to model
true reference semantics, rather than always copying values into new
wrapper instances. The goals are:
- Preserve the lifetime of the referred-to object safely.
- Allow attribute/method access on the referenced object to affect
the original C++ object where appropriate.
- Safe wrapping of non-const iterators
Investigate iterator wrappers that store both a reference to the
original container and the iterator state, so that in-place
modifications through iterator access are reflected in the
underlying C++ container (instead of always iterating over copies).