An error on trying to sort shared data using slice

Sparsh Mittal sparsh0mittal at gmail.com
Mon Jan 28 06:00:16 PST 2013


Purpose: I am trying to sort only a range of values in an array 
of struct (the struct has two fields and I want to sort on one of 
its fields using myComp function below). However, I am getting 
this error:

../src/phobos/std/algorithm.d(7731): Error: cannot implicitly 
convert expression (assumeSorted(r)) of type 
SortedRange!(shared(intpair)[], myComp) to 
SortedRange!(shared(intpair[]), myComp)
./ParallelCode.d(223): Error: template instance 
ParallelCode.singleSlave.sort!(myComp, cast(SwapStrategy)0, 
shared(intpair[])) error instantiating
=================================
where my relevant code is:
=================================


struct intpair{
   int AllInts[2];
};
shared intpair [] distArray;

void main()
{
...
distArray = new shared intpair[number_of_lines];
...
}

void singleThreadFunction(...)
{
  bool myComp(shared intpair x,shared intpair y)
    {
      return x.AllInts[0] < y.AllInts[0];
    }
shared intpair[] tempSortArray = 
distArray[startRange..endRange+1];

/*line 223:*/   sort!(myComp)(tempSortArray);

}

Can you please help me. Thanks.


More information about the Digitalmars-d-learn mailing list