On Tuesday, 26 February 2019 at 00:07:54 UTC, Victor Porton wrote:
I want to create a string mixin based on a supplementary variable (name2 below):

Let we have something like:

mixin template X(string name) {
  immutable string name2 = '_' ~ name;
  mixin("struct " ~ name2 ~ "{ int i; }");
}

But it would create variable name2 inside X, which should not be created. How to solve this problem?

Your best bet is to just not declare anything in a mixin template that you don't want included:

mixin template X(string name) {
  mixin("struct _" ~ name ~ "{ int i; }");
}

Or don't use mixin templates:

template X(string name) {
  immutable string name2 = '_' ~ name;
  enum X = "struct " ~ name2 ~ "{ int i; }";
}
mixin(X!("foo"));

Reply via email to