Thread overview | |||||
---|---|---|---|---|---|
|
August 11, 2012 Specialize mixin templates | ||||
---|---|---|---|---|
| ||||
A struct takes a mixin template as argument: struct S(alias Mixin) { mixin Mixin; } How to specialize a mixin template like this one to pass to S? mixin template MixinTemplate(T) { } S(MixinTemplate!float); // Something like this |
August 12, 2012 Re: Specialize mixin templates | ||||
---|---|---|---|---|
| ||||
Posted in reply to Henning Pohl | On 08/11/2012 11:42 PM, Henning Pohl wrote:
> A struct takes a mixin template as argument:
>
> struct S(alias Mixin) {
> mixin Mixin;
> }
>
>
> How to specialize a mixin template like this one to pass to S?
>
> mixin template MixinTemplate(T) {
> }
>
>
> S(MixinTemplate!float); // Something like this
This is a way to do it:
struct S(alias Mixin){
mixin Mixin;
}
mixin template MixinTemplate(T){
}
mixin template MixinTemplateFloat(){
mixin MixinTemplate!float;
}
S!MixinTemplateFloat s;
|
August 12, 2012 Re: Specialize mixin templates | ||||
---|---|---|---|---|
| ||||
Posted in reply to Timon Gehr | On Sunday, 12 August 2012 at 02:32:30 UTC, Timon Gehr wrote:
> On 08/11/2012 11:42 PM, Henning Pohl wrote:
>> A struct takes a mixin template as argument:
>>
>> struct S(alias Mixin) {
>> mixin Mixin;
>> }
>>
>>
>> How to specialize a mixin template like this one to pass to S?
>>
>> mixin template MixinTemplate(T) {
>> }
>>
>>
>> S(MixinTemplate!float); // Something like this
>
> This is a way to do it:
>
> struct S(alias Mixin){
> mixin Mixin;
> }
>
> mixin template MixinTemplate(T){
> }
> mixin template MixinTemplateFloat(){
> mixin MixinTemplate!float;
> }
>
> S!MixinTemplateFloat s;
I've already found another way, but I think this proposal seems cleaner, thank you.
|
Copyright © 1999-2021 by the D Language Foundation