Andrew Sutton
Andrew Sutton
Somehow, `$x.members()` will include the enclosing class as the first entity.
Parameters of injected functions in metaclasses refer to the wrong the declarations when applied. See `test/CXX/meta/value.cpp` for an example. It's likely that we're not updating the context correctly when instantiating...
Don't allow a list of expressions in the capture list. Just scan the enclosing scope for local declarations and capture those.
There appears to be a bug in the instantiation of loop bodies involving the members of a class. From the literal value test: ```cpp $class literal_value { // Transform members...
For example: ``` $class foo { int idexpr($foo.name() "_bar") = 0; } ``` This is currently rejected because variables must have identifiers as names. This raises an interesting question... how...
Support this: ```c++ constexpr { -> { void f() { } void g() { } } } ``` I believe the parser will currently lex all contained declarations and statements,...
Token-based code injection does not solve metaprogramming problems. Consider a small class that wants to auto-generate accessors for its members: ```cpp struct S2 { int a, b, c; constexpr {...
Here's a small example that triggers the crash. ```cxx #include #include using namespace cppx::meta; struct date { int y; int m; int d; virtual void f() { } }; int...
We need a `__reflect_as_type(X)` intrinsic that yields the the actual type of the reflected `X`. And appropriate extensions in the `meta` library. ```c++ template struct type { using reflected =...
For example, this program: ```c++ constexpr { -> { void foo() { }; } } int main() { foo() { } } ``` results in an undefined reference for `foo`....