****** OBSOLETE - CONCEPTS HAS BEEN MERGED INTO CLANG TRUNK AND DEVELOPMENT CONTINUES THERE ****** This fork of llvm-project contains my implementation of C++2a Concepts for the Clang compiler, and will be updated regularly with bug fixes until the whole feature is merged to trunk. Follow the instructions here https://clang.llvm.org/get_started.html to build, then use the flags "-std=c++2a -Xclang -fconcepts-ts" to enable concepts.
When using a requires-expression as a template argument such as enable_if</* requires expression */>, the compiler emits: "error: cannot yet mangle expression type RequiresExpr". Some examples:
Yes, I know that they can be placed in a requires clause on the lambda/function. I'm intentionally doing strange things.
As mentioned in the cpplang slack, "The mangling of requires expressions is yet undefined by the Itanium ABI", which is likely why this fails to compile
When using a requires-expression as a template argument such as
enable_if</* requires expression */>
, the compiler emits: "error: cannot yet mangle expression type RequiresExpr". Some examples:https://godbolt.org/z/J42cg7
https://godbolt.org/z/fMaye4
Yes, I know that they can be placed in a requires clause on the lambda/function. I'm intentionally doing strange things.
As mentioned in the cpplang slack, "The mangling of requires expressions is yet undefined by the Itanium ABI", which is likely why this fails to compile