What about an identifier that is an mixin
Daniel Kozák via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jan 13 13:42:31 PST 2017
Daniel Kozák <kozzi11 at gmail.com> napsal Pá, led 13, 2017 v 10∶32 :
> 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
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20170113/80fbe5d1/attachment-0001.html>
More information about the Digitalmars-d
mailing list