Mixin and compile-time functions for code generation

Christian Köstlin christian.koestlin at gmail.com
Fri Jun 30 14:03:22 UTC 2023


On 24.06.23 18:31, Cecil Ward wrote:
> I have a function that can be run at compile-time and which will be able 
> to output code to be injected into the D source code stream. Can I get 
> mixin whatever to do this for me? Mixin with a function that runs at 
> compile-time and creates the required source ? Like D’s solution for a 
> replacement for function-style C preprocessor macros ? - but far more 
> advanced and capable ?
> 
> I need to re-read Ali Çehreli’s excellent book for the third time.
Is this what you want todo:

```d
import std.string : format, capitalize;
import std.stdio : writeln;

string getter(string v)
{
     return "auto get%s() { return %s; }".format(v.capitalize, v);
}

class T
{
     int abc;
     mixin(getter("abc"));
}

void main() {
     auto t = new T();
     writeln(t.getAbc());
}
```



More information about the Digitalmars-d-learn mailing list