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 -----
From: Schaible, Joerg
To: boost@egroups.com
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
 
-----Ursprüngliche Nachricht-----
Von: Joe Gottman [mailto:joegottman@worldnet.att.net]
Gesendet: Dienstag, 12. Dezember 2000 02:51
An: boost@egroups.com
Betreff: [boost] shared_array.size()

    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