Inline aggregate types
Ethan Watson via Digitalmars-d
digitalmars-d at puremagic.com
Fri Dec 2 03:11:30 PST 2016
On Friday, 2 December 2016 at 10:16:17 UTC, Jacob Carlborg wrote:
> Using an alias without a template constraint works for me.
I was attempting to support all methods. new class isn't the
cleanest way of doing things either, so I decided I'd support all
the things and let the user choose what they're comfortable with.
But I did derp a bit, and realised that I could have just changed
the string mixin method to not invoke the main template with
typeof( return value ).
Thus:
mixin template BitPack( alias Descriptor, string NameAlias =
typeof( Descriptor ).stringof )
{
mixin( GenerateBitPackBody!( typeof( Descriptor ), NameAlias
)() );
}
mixin template BitPack( string ElementDescriptor, string
NameAlias = "BitPackData" )
{
mixin( "mixin BitPack!( { struct BitPackData { " ~
ElementDescriptor ~ " } return BitPackData.init; }(), NameAlias
);" );
}
Works for both string definitions and inlined new class
definitions.
More information about the Digitalmars-d
mailing list