Anton Pevtsov wrote:
Martin, I updated all tests to use new macro DEFINE_STRING_TEST_DISPATCH
and allocator.
The diff file is here:
http://people.apache.org/~antonp/stdcxx05172006/

Thanks for doing that! Please go ahead and apply the changes.


Martin Sebor wrote:

<>PS I noticed that the --no-xxx/--enable-xxx command line options don't


<>quite control the overloads they should. I haven't looked into it very
closely yet except for adding a missing "-enable-xxx" > string. Are you
seeing the same thing on your end?


Yes. The cause is the missed option "-no-self-ref". The diff file with
fix attached.

Aha! Let me apply this one.


I have a question about UserAlloc: how can I instantiate two different
allocators (i.e. allocators which have different ids)? It looks like
all allocators in the same scope will have the same id.

Good question! All default-constructed allocators (regardless
of their value_type) share the same SharedAlloc object and thus
have the same id. The same specializations also compare equal.
To construct a UserAlloc object that uses a different SharedAlloc
object you must create it and point the allocator at it. Here's
how to do it:

#include <cassert>
#include <rw_allocator.h>

int main ()
{
    SharedAlloc a;

    UserAlloc<int> x;
    UserAlloc<int> y;
    UserAlloc<int> z (&a);

    assert (x == y);
    assert (x != z);

    // copies of the same object have the same id regardless
    // of their type
    UserAlloc<double> xx (x);
    UserAlloc<int> xxx (xx);

    assert (x == xxx);
}

Reply via email to