Skip to content

fseq.cpp doesn't compile with g++ #5

@nickbailey

Description

@nickbailey

I fully understand you're targeting clang++ but everything else compiles with g++ -std=c++17 -fno-exceptions -fno-rtti -nodefaultlibs -fPIC -O2 -c -o ...

g++ (version 8.3.0) dislikes some templates:

fseq.cpp:830:26: error: could not convert ‘ss.F::_SeqSingle::t[0]’ from ‘const Tree’ {aka ‘const F::Union<F::_Boxed<F::_FragHeader>, F::Tree2, F::Tree3>’} to ‘F::Frag’ {aka ‘F::_Boxed<F::_FragHeader>’}
             return ss.t[0];

etc. Maybe it's just a case of selecting the right field in the union? It should return the first one, I guess? Or is it that the const qualifier is dropped? I found the definition of Union in fvalue.h but it's not obvious to me how it works yet.

Maybe you don't mind about g++ compatibility, but it would certainly increase your user-base among those for whom it's not easy to install clang.

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