Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple vec fixes that are useful to implement canvas_ity. #11

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Oct 4, 2024

  1. Multiple vec fixes that are useful to implement canvas_ity. I found q…

    …uite a bit of oddity in vector still.
    
    - Remove bizzarre idata() method, normally inout should not contaminate identifiers. Fixed that in strings, I supposed the goal was to not return mutable C string from numem string
    - vec.ptr() as alias to vec.data(), which is not inout. It fixed ref auto opOpAssign(string op = "~")(vector!T other) that uses other.ptr
    - vec.length as alias of vec.size
    - clear() and remove() will clean-up items in reverse manner just like the destructor, and only if not a basic type.
    - ref inout(T) opIndex. else you can't index vector fields in const methods
    
    - BREAKING remove is fixed (it was not possible to remove zero items with its API without crashing) and is now "delete [start, end)" instead of "delete [start, end]"
      Changed error recovery that swaps start and end to assertion.
      That makes the functions more similar in contract to c++ std::vector::erase and a bit more expected to me.
      IF the contract doesn't change, at least it should say plainly that this will crash if no items are removed.
    Guillaume Piolat committed Oct 4, 2024
    Configuration menu
    Copy the full SHA
    6d97870 View commit details
    Browse the repository at this point in the history