Travis Vitek wrote:
[...]
FYI, this issue isn't isolated to the vector container. It exists for
most of the iterator/proxy types also. Everywhere you see
_RWSTD_OPERATOR_ARROW, and nearly everywhere you see '&*' will have some
issue with this. I'm sure that there are other places that the problem
happens, but those are the ones that are easily isolated.

Some of these are probably unavoidable. For instance, the code you
used in the test case for STDCXX-612:

    struct S { void operator& () const {}; };
    std::reverse_iterator<S*>().operator->();

can't compile because the required Effects of the function are to
return &(operator*());

This is a can of worms. We might be able to get our containers to
deal with these funky types in some cases as an extension but making
the whole library impervious to these kinds of gotchas will most
likely be more trouble than it will be worth.

Martin

Reply via email to