What about an identifier that is an mixin

Daniel Kozák via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 13 13:32:49 PST 2017


Daniel Kozák <kozzi11 at gmail.com> napsal Pá, led 13, 2017 v 10∶29 :
> André Puel via Digitalmars-d <digitalmars-d at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20170113/d5f72de3/attachment.html>


More information about the Digitalmars-d mailing list