dcollections ArrayList pb with mixin template
Steven Schveighoffer
schveiguy at yahoo.com
Thu Jul 1 13:59:23 PDT 2010
On Thu, 01 Jul 2010 15:36:53 -0400, BLS <windevguy at hotmail.de> wrote:
> Hi, I have a problem with a mixin template. More exact with an
> Arraylist!T within a mixin template.
> Given.
> void main() {
> auto p = new Person("Hans", 32);
> p ~= new Person("Steve", 40);
> p ~= new Person("Bjoern", 101);
> }
>
> class Person {
> private string _name;
> private uint _age;
>
> mixin TLinkList;
>
> this(string name, uint age) {
> this._name = name;
> this._age = age;
> }
> }
>
> mixin template TLinkList() {
> alias typeof(this) T;
> alias ArrayList!T TList;
>
> T[] pa;
> auto pl = new TList(pa); // This does not work !
> void opCatAssign(T v) {
> pa ~= v;
> }
> }
> Error: non-constant expression new ArrayList(pa) main.d
>
> Ideas ?
> Thanks Bjoern
I'm thinking it has to do with you trying to create a member with that
line.
I think a member initializer has to be a constant expression, like int i =
1. Anything else has to be done in the constructor. This kinda sucks,
because you can't initialize members with their defaults where you declare
them, but it's the way D works.
-Steve
More information about the Digitalmars-d-learn
mailing list