Releases: asutton/clang
Releases · asutton/clang
Alpha
This release of the clang-cppx compiler supports:
- Reflection operators
$
andreflexpr
. - Reification operators
typename
anddeclname
. - Tuple-based for loop expansion (e.g. ,
for... (x : t)
wheret
is aTuple
, as in the concept). - metaclass definitions (e.g.,
$class interface { ... }
). - metaclass application (e.g. ,
interface IFoo { ... }
). - constexpr evaluation blocks in namespace, class, and function scopes (e.g.,
constexpr { ... }
). - token injection within constexpr blocks (e.g.,
-> { int f() { return 3; } }
). - The ability to modify access specifiers, and to make a member virtual.
- Library support for reflection (
<cppx/meta>
). - Library support for user-defined compiler errors (
<cppx/compiler>
).
All of these features are experimental and subject to a) not working as promised, b) not working at all, or c) crashing the compiler. Consider yourself forewarned. Please submit an issue.
To use these features, be sure to compile with -std=c++1z
and -Xclang -freflection
. The -Xclang
bit forwards the -freflection
flag to the C++ compiler (this is issue #1). Also, the directory including the cppx
headers must be on path. This build installs those headers alongside the Clang and LLVM headers.