Closed akrzemi1 closed 5 months ago
Phil Endicott also reported this same problem. However, if you look at those two declarations, you will see that the constraints are identical, modulo spelling of the type names.
I think it's related to one or both of these Clang bugs:
https://github.com/llvm/llvm-project/issues/49620 https://github.com/llvm/llvm-project/issues/61763
There is a workaround. Define BOOST_PARSER_DISABLE_CONCEPTS
to be 1
, and you'll get the C++17 SFINAE constraints.
Ok, but maybe Boost.Parser should detect the defective Clang verisons and automatically skip concept definitions?
Unfortunately, I don't have very good acccess to Clang. I really just have the one version thay Github actions supports! If I knew a reliable range of Clang versions that I could work around, I would be happy to do that.
Interestingly, it looks like the error disappeared: both in my GodBolt example as well in my local tests. Maybe something changed in the implementation.
I get a strange error message, related to requires-clauses, when I compile my program with clang++
Here is a Compiler Explorer sample with my code, but the error message does not shw up there. https://godbolt.org/z/ohecsYMjs
So instead, let me paste the error message. Maybe you will be able to make some sense from it.