bytedeco/javacpp

Using std::variant

Open

#624 geöffnet am 19. Okt. 2022

Auf GitHub ansehen
 (3 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Java (620 Forks)batch import
bughelp wanted

Repository-Metriken

Stars
 (4.279 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

Could you please explain how create mapping for std::variant? As I see in changelog it's already supported, but I didn't find an examples of usages in tests or in javacpp-presets. I've added an example class

class MyVariant {
public:
    std::variant<
            bool,
            float,
            double> value;
};

And new class was created automatically, but std::variant was not converted:

public static class MyVariant extends Pointer {
    static { Loader.load(); }
    /** Default native constructor. */
    public MyVariant() { super((Pointer)null); allocate(); }
    /** Native array allocator. Access with {@link Pointer#position(long)}. */
    public MyVariant(long size) { super((Pointer)null); allocateArray(size); }
    /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
    public MyVariant(Pointer p) { super(p); }
    private native void allocate();
    private native void allocateArray(long size);
    @Override public MyVariant position(long position) {
        return (MyVariant)super.position(position);
    }
    @Override public MyVariant getPointer(long i) {
        return new MyVariant((Pointer)this).offsetAddress(i);
    }

    public native @ByRef std::variant<bool,float,double> value(); public native MyVariant value(std::variant<bool,float,double> setter);
}

Contributor Guide