8000 Getting a reference from a pointer inside a pointer_variant · Issue #2 · foonathan/tiny · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Getting a reference from a pointer inside a pointer_variant #2
Open
@brenoguim

Description

@brenoguim

Hey!
One of the problems I faced when implementing my tiny::pointer_variant<T*, U*> was to get a T**. Since (in my implementation), the first item of the variant has a 0 bit tag, the pointer actually has a non-dirty bit pattern, so it should be possible to take the pointer to the element inside the variant.
I had a hard time implementing that without violating strict aliasing rules. (And I still don't know if I was able to implement that without UB).

The motivation to get a T** is to be able to create a tiny::pointer_dyn_array<T*>, which is a pointer_variant<T*, T**>, and contains the T* when the array has size 1 (therefore avoiding allocation and indirection in size=1).
Since the tiny::pointer_dyn_array<T*> has a begin/end interface, it's necessary to get the T** from the variants first element.

Is there a plan to implement a pointer_dyn_array? I'm curious to know how you'd implement that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0