Create module-level function using mixin template?

monkyyy crazymonkyyy at gmail.com
Fri Apr 25 17:59:29 UTC 2025


On Friday, 25 April 2025 at 17:24:18 UTC, Andy Valencia wrote:
> On Friday, 25 April 2025 at 16:59:16 UTC, monkyyy wrote:
>> its extremely unclear what your trying to do my best geuss:
>
> I want to use a mixin template to generate a top-level 
> function.  Like, is there a variant of the following which 
> makes a function named "foo1" available?
>
> Andy
>
> ```d
> mixin template Foo(alias fn) {
>     int fn() { return 1; }
> }
>
> mixin Foo!foo1;
>
> void main() {
>     import std.stdio : writeln;
>
>     writeln(foo1());
> }
> ```

If we ever get string mixins of identifiers maybe, but as is it 
wont go that well

like you have the identifier at programing time, use an alias 
`alias foo1=Foo(...)`
if you need a list, use an int and specialization, you can then 
access it with `static foreach(I;0..N){`
if you have arguements, use a standard template
if you need to use features from a struct; use propertys of the 
struct in line of a meta program


More information about the Digitalmars-d-learn mailing list