Our template emission strategy is broken
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Thu Nov 12 17:14:23 PST 2015
On Friday, 13 November 2015 at 00:58:57 UTC, Walter Bright wrote:
> On 11/12/2015 2:58 PM, deadalnix wrote:
>> You can have a template that
>> do mixin without creating loop because then you pass it down
>> identifiers that
>> won't resolve.
>
> My brain seg faulted trying to parse that.
module a;
struct S(E) {
import std.bitfield;
mixin(bitfield!(
bool, "flag", 1,
T, "myT", SizeOf!T,
uint, "", 32 - SizeOf!T - 1,
));
}
module b;
enum MyEnum { Val1, Val2, Val3 }
import a;
alias UsefulStruct = S!MyEnum; // Boom, MyEnum is undefined
Now you end up having to tie stupid node into your code, like
adding all user of library X as import in library X. Which sucks,
but is forced by the language design.
More information about the Digitalmars-d
mailing list