martinmoene/optional-lite

fails to compile with older versions of clang w/ -std=c++0x

trapexit opened this issue · 8 comments

thanks :)

@trapexit Can you have a look if above change solves compiling with clang 3.4? Wasn't able to test it myself via godbolt.

https://travis-ci.org/github/trapexit/mergerfs/jobs/725001551

Doesn't appear so but I did try testing it in isolation and couldn't reproduce it either. Must be something about my usage. I'll have to dig into it more.

@trapexit Only now special-cased the type traits that are missing when using clang 3.4. Would appreciate it if you have a look if above change (take 2) solves compiling with clang 3.4; thanks in advance.

Haven't gotten the time to investigate in detail but still errors out with the new change.

https://travis-ci.org/github/trapexit/mergerfs/jobs/725066910

@trapexit Fixed overlooked second template argument of std11::is_asssignable<>.

https://travis-ci.org/github/trapexit/mergerfs/jobs/725236488

Seems to have fixed things on 3.4 but still broken on 5 (from Ubuntu Trusty).

@trapexit I'm not very adept at Travis' usage and the various distributions one can or must use to certain effects, or deducing the information of interest from a log.

That said, isn't /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits a bit old relative to clang 5.0.0?

Non-failing usage of optional-lite with clang 5.0.0 (or 4.0.0 for that matter):

So, this looks like a different defiance from the clang 3.4 one to me. It hints to a standard-library-dependency check instead of a compiler version check, something that is not present in any of the *-lite libraries as far as I'm aware.

Could use some helpful input here :)