On 27/01/2018 23:22, Glen Fernandes via Boost wrote:
I wrote a .travis.yml for your boost-outcome submission to run your unit tests against a few compilers:
The output is at: https://travis-ci.org/glenfe/ned14.outcome/builds/334222400
I updated it to make sure the clang++-libstdc++ uses a more recent libstdc++.
It looks like: - clang++-libc++ fails because of forgetting to #include a header.
Yep, that's a bug. Fixed in develop branch. Thanks for reporting it!
- GCC 7.2 with -std=c++17 is the one with the Internal Compiler Errors (I didn't investigate further)
GCC constexpr ICE bug described in previous email.
- clang++5-libstdc++ fails because it cannot find a type in std
On C++ 17, it uses std::in_place_type<T> instead of defining a local copy. This error suggests that either the STL being used doesn't define an implementation, or as you say a header is missing. Yet at https://github.com/ned14/boost-outcome/blob/master/include/boost/outcome/det..., it very clearly is including the correct header, and at https://github.com/ned14/boost-outcome/blob/master/include/boost/outcome/det... it is correctly selecting std::in_place_type on the value of __cplusplus. So on the basis of that, I'm going to assert that the libstdc++ version you are using is insufficiently new.
Is there a reason why you don't have travis and appveyor for boost-outcome? I remember your "Best Practices" document strongly advocating that every Boost library submission should have them.
https://travis-ci.org/ned14/boost-outcome https://travis-ci.org/ned14/outcome https://ci.appveyor.com/project/ned14/outcome Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/