Why does this mixin fail to compile?
ryuukk_
ryuukk.dev at gmail.com
Mon Jul 1 10:31:45 UTC 2024
On Monday, 1 July 2024 at 10:20:25 UTC, drug007 wrote:
> On 01.07.2024 12:39, ryuukk_ wrote:
>> On Monday, 1 July 2024 at 09:29:50 UTC, Dennis wrote:
>>> On Monday, 1 July 2024 at 09:25:39 UTC, ryuukk_ wrote:
>>>> This simple mixin fails to compile, anyone know why?
>>>>
>>>> ```D
>>>> mixin implement;
>>>>
>>>> mixin template implement() {
>>>> mixin("struct _gen(T) {");
>>>> mixin("}");
>>>> }
>>>
>>> A string mixin must form a complete declaration / statement /
>>> expression / type, so you can't end on an open brace.
>>
>> this is sad, how i am supposed to do a foreach inbetween?
>>
>> ```D
>> mixin implement!TEST;
>>
>> mixin template implement(stuff) {
>> mixin("struct _gen(T) {");
>>
>> // pseudo code
>> static foreach(args)
>> mixin("stuff");
>>
>> mixin("}");
>> }
>>
>> void main(){}
>> ```
>
> No problem, make a full string then mixin it.
Your "no problem" = lot of string concatenation therefore slower
and memory hungry, i have no desire to do that
More information about the Digitalmars-d-learn
mailing list