Daniel Kozák <kozz...@gmail.com> napsal Pá, led 13, 2017 v 10∶32 :
Daniel Kozák <kozz...@gmail.com> napsal Pá, led 13, 2017 v 10∶29 :
André Puel via Digitalmars-d <digitalmars-d@puremagic.com> napsal
Pá, led 13, 2017 v 10∶15 :
One thing that I miss sometimes when doing meta programming is
being able to hide that a function should be called with mixin.
For example (pardon my lack of creativity):
// Instead of
string declare_a() {
return "int a;"
}
int func() {
mixin(declare_a);
return a;
}
// Could we have?
mixin declare_a() {
return "int a;";
}
int func() {
declare_a;
return a;
}
I think this could be useful when one is creating Idiom and
Patterns, you could hide implementations details.
You can do this:
mixin template declare_a()
{
int a;
}
int func()
{
mixin declare_a;
return a;
}
but there is no way to exclude mixin before calling declare_a, there
is a good reason for that (it is really important to be able to tell
when you use mixin and when not)
Right now you can even use
template declare_a() {...}
there is no difference between template and mixin template
in this context, AFAIK you can not use mixin template like a normal
template but you can use non mixin template like a mixin template