digitalmars.D.learn - Inline mixin
- Inquie (16/16) Mar 14 2017 Many times I need to build a type using a string. I have to
- Daniel Kozak via Digitalmars-d-learn (10/25) Mar 14 2017 You can combine template and mixin.
Many times I need to build a type using a string. I have to resort to building the entire expression/statement using the mixin: mixin("This is a long and complex expression where I only need to modify X") Is there any way to do a sort of "inline mixin"? This is a long and complex expression where I only need to modify mixin("X") ? e.g., mixin("int "~name~" = 3;") vs int mixin(name) = 3; (a gross simplification) Maybe a template could handle it or is something like this impossible by D's gramar?
Mar 14 2017
Dne 14.3.2017 v 18:38 Inquie via Digitalmars-d-learn napsal(a):Many times I need to build a type using a string. I have to resort to building the entire expression/statement using the mixin: mixin("This is a long and complex expression where I only need to modify X") Is there any way to do a sort of "inline mixin"? This is a long and complex expression where I only need to modify mixin("X") ? e.g., mixin("int "~name~" = 3;") vs int mixin(name) = 3; (a gross simplification) Maybe a template could handle it or is something like this impossible by D's gramar?You can combine template and mixin. something like this: enum Z(alias X) = "int x = " ~ X.stringof ~ ";"; void main() { import std.stdio : writeln; mixin(Z!1); writeln(x); }
Mar 14 2017