hmm the thing is it compares all the array. And len might not be the actual size of the array.

Example you cna have array X.
x[0] = 25
x[1] = 12
x[2] = null
x[3] = null
 

 
On 10/25/07, Michael Linck <mgl@absolute-performance.com> wrote:
The boost documentation states that the == operator "Compares the stored
pointers of the two smart pointers." The phrase "smart pointers" refers
to the shared arrays themselves, because that's really all a shared
array *is.*  So the operation described above is actually equivalent to
what you outlined in item 2. of answering your own question.

mike

On Thu, 2007-10-25 at 11:22 -0700, chun ping wang wrote:
> Hi I notice boost shared_array compares the pointer address not the
> pointer themselves. What would be the best way to compare the actual
> value of boost shared_array.
>
> 1.)
> shared_array<T> a;
> shared_array<T> b;
>
>
> 1.) return (a.len == b.len && (memcmp(a, b, len) == 0));
>
> or
>
> 2.)
> if (a.len != b.len)
>      return false;
> for (ptrdiff_t i  = 0; i != a.len; ++i)
>    if(a[i] != b[i])
>       return false;
>
> One that works ALL the times.
>
> _______________________________________________
> Boost-users mailing list
> Boost-users@lists.boost.org
> http://lists.boost.org/mailman/listinfo.cgi/boost-users

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users