stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: svn commit: r587164 - /incubator/stdcxx/branches/4.2.x/include/vector.cc
Date Wed, 24 Oct 2007 17:34:32 GMT
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

Mime
View raw message