|
Boost Users : |
From: Michael Linck (mgl_at_[hidden])
Date: 2007-10-25 17:35:22
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_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net