That's why I said the constructor and the reset
would need an extra parameter, so that the user could include the size.
Thus, instead of
boost::shard_array<int> my_array(new int
[10]);
we would have
boost::shared_array<int> my_array(new
int[10], 10);
Currently, there is no safe way to get a
shared_array as a return value of a function. If you have code
like
boost::shared_array<int> my_array =
foo();
how could you subsequently use my_array?
Without knowing the size of my_array, you cannot safely call my_array[10],
because there might only be 5 elements.
Joe Gottman
----- Original Message -----
Sent: Tuesday, December 12, 2000 7:19
AM
Subject: AW: [boost]
shared_array.size()
Hi
Joe,
this
is not in the scope of this class. Since you cannot request the size from an
array you've allocated dynamically, the shared_array cannot report
either.
Greetings,
Jörg
I have been using the
shared_ptr from "smart_ptr.hpp" and have found it very useful. However,
I am afraid to try using the shared_array from the same file. The
problem is that shared_array does not have a size() member function.
This makes it very dangerous to use the shared_array if the user
doesn't know what size array it was created with, for instance if it was
returned from a function.
I think the shared_array would be
much more useful with a size() member. However, this would
necessitate changing the constructor and the reset() function to take an extra
parameter to indicate the size. Also, it would
necessitate using a third pointer to store the size.
Joe Gottman