On Wednesday, 31 July 2013 at 12:23:42 UTC, dennis luehring wrote:
Am 31.07.2013 14:09, schrieb JS:
It would be nice to be able to have a precompilation step that
produces a d output file that is the "mixed down" version with
all the string mixins computed. This would allow one to look at
the files, allow better code analysis/error messages, and
intellisense and other things to be useful.

A simple compiler switch would do the trick to enable such a
feature. *.dc files could be generated, or whatever, for each d
file if it uses string mixins(I suppose template mixins could
also be reduced).

what about something that catches mixin results into a static compiletime strings

template GenStruct(string Name, string M1)
{
const char[] GenStruct = "struct " ~ Name ~ "{ int " ~ M1 ~ "; }";
}

which generates:

struct Foo { int bar; }

catch_generated_output(my_mixin_output)
{
  mixin(GenStruct!("Foo", "bar"));
}

pragma(msg, my_mixin_output);

prints:

struct Foo { int bar; }


I already do that... When you do that with nested templates it creates a huge mess... also errors are useless... as the point to the mixin string.

Simple examples are easy to come up with but don't demonstrate how useless they can be.

Reply via email to