Why does this mixin fail to compile?

drug007 drug2004 at bk.ru
Mon Jul 1 11:22:47 UTC 2024


On 01.07.2024 13:31, ryuukk_ wrote:
> On Monday, 1 July 2024 at 10:20:25 UTC, drug007 wrote:
>>
>> 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

Do you think that string concatenation is the most heavy operation on 
using string mixin?

When you pass the mixin string to the compiler it allocates memory too. 
If you want to use incomplete mixin strings the compiler will accumulate 
it (allocating additional memory) until it builds a complete AST node to 
mix in at once. At best, it will cost the same as building a full string 
as I suggested but in general it may cost even more. Also, compilation 
would take longer because the compiler would need to have additional 
logic to detect the end of your string mixin etc. Your profit from 
avoiding string concatenation would almost negative.


More information about the Digitalmars-d-learn mailing list