Accessing members of an array of a class with map.

Ave via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Sep 30 12:04:11 PDT 2016


An example of what I'm trying to do:

import std.stdio;
import std.container;
import std.algorithm;
class Aa
{
     Array!B arrB;
}

class Bb
{
     string name;

}
void main()
{
     Aa test;
     auto c=new Bb;
     c.name="asdf";
     test.arrB.insert(c);
     auto d=new Bb;
     d.name="1234";
     test.arrB.insert(d);
     writeln(test.arrB[].map!(x=>x.name);
}
I was able to get this to compile,but it segfaults.
If I do this however:

import std.stdio;
import std.container;
import std.algorithm;
class Bb
{
     string name;
}
void main()
{
     Array!B arrB;
     auto c=new Bb;
     c.name="asdf";
     arrB.insert(c);
     auto d=new Bb;
     d.name="1234";
     arrB.insert(d);
     writeln(arrB[].map!(x=>x.name);
}
It will compile and work without seg faulting. What am I doing 
wrong in my first case that's causing the program to seg fault?


More information about the Digitalmars-d-learn mailing list