FFXIVClientStructs icon indicating copy to clipboard operation
FFXIVClientStructs copied to clipboard

Implement STL containers with C# collection views

Open Soreepeong opened this issue 2 years ago • 2 comments

Continuation of #666, per @MidoriKami's request.

Tests are not done in a comprehensive way. It is possible that some parts of it has to be patched on use.

  • Implements move/copy/default construction semantics for operations that modifies the struct or underlying buffer.
  • Implements IMemorySpace specification using generic types.
  • Implements std::list, std::vector, std::basic_string, std::set, std::pair, std::map for both read/write operations.
  • Implements std::deque for read operations.
  • StdLinkedList is not touched for the time being.

Usage notes

If the contained type is not trivial, then any mutating operation will cause undefined behavior, until the contained type gets IStaticNativeObjectOperation<T> recursively implemented.

Soreepeong avatar Dec 25 '23 18:12 Soreepeong

Decided that having a PointerSpan<T> would make things much more convenient.

Soreepeong avatar Dec 29 '23 12:12 Soreepeong

We'll have to hold on merging this til an API bump presumably.

aers avatar Jan 05 '24 11:01 aers