[Interest] Help, please !!!

Nikos Chantziaras realnc at gmail.com
Fri Apr 27 00:02:56 CEST 2012


On 27/04/12 00:45, Scott Aron Bloom wrote:
> Nope.  That was not the issue.  The issue was that when you append list
> A into list B, you can't get to list A because what's inside list B is a
> copy of A, not A itself.  You might want to read again from the first
> post.
>
> _______________________________________________
> 	
> Nope.. not at all..
>
> The problem is with your testcase Nikos... NOT implicit sharing..
>
> listOfInts.append(10);
>
> Expliticly PREVENTS the modification of the listOfInts variable.
>
> It takes in a const object reference, Guarenteeing the original will NOT
> be modified.. And implying that any modification to the original will
> not effect the copy as well..

I said:

   list->append(&someOtherList);

You said:

   If someOtherList goes out of scope, you will be pointing to
   a deleted list.

   Since QList uses implicit sharing, the cost of removing the
   inner pointer isn't that much.

       QList< QList< int > >

   Is much safer.

I said:

   Note that with QList< QList<int> > you can't modify the other
   lists. You'd only be modifying the copies.

You said:

   Not true at all..

I don't see what it is that we're discussing here. Your statement was 
simply wrong.  My suggestion to be able to modify the other list:

   list->append(&someOtherList);

Your suggestion to be able to modify the other list:

   list->append(someOtherList);

which doesn't work.  You will *not* be able to modify 'someOtherList' 
through 'list'.  It's basic C++.  You *need* to hold a pointer, or else 
you're dealing with a copy.  Whether that copy uses implicit sharing 
doesn't matter at all; implicit sharing is just an optimization.




More information about the Interest mailing list