[SAoC] Move semantics and STL containers
Suleyman
sahmi.soulaimane at gmail.com
Sat Sep 21 19:44:41 UTC 2019
Hello,
I will be working in this SAoC season on the D bindings to simple
STL containers project[1].
This thread will be updated weekly with progress status.
The theme of this SAoC project is to improve and consolidate D's
interoperability through bindings to the C++ STL containers. This
will involve fixing a number of DMD issues related to C++
interop, as well as implementing the move constructor in D.
Milestones:
* 1. Full implementation of rvalue ref.
- `@rvalue ref` as attribute
- __traits(isRvalueRef)
- `__rvalue(T)` as type constructor
- implement full semantics
- expand `auto ref` to rvale ref
- match the C++ mangling for rvalue ref
* 2. Full implementation of the move constructor
- move constructor
- move opAssign
- implement full semantics:
- default behaviour
- `@disable`
- relationship with the copy constructor
- conflict with existing semantics
* 3. Fix blocking DMD issues and implement std::string and
std::vector on all platforms
- Fix issue https://issues.dlang.org/show_bug.cgi?id=20235
- Investigate and fix the mangling issue which is blocking
std::pair
- implement move semantics for std::string
- implement std::vector for GCC and Clang lib
* 4. Finalize the project
- Ensure move semantics work properly
- ensure backwards compatibility
- implement existing STL containers on all platforms
- resolve all D blockers
____
[1] https://github.com/dlang-cpp-interop/stl-containers/
More information about the Digitalmars-d
mailing list