[cfe-dev] Bug 13699 - Types unexpectedly lose visibility. This is happening when using iterators.

Francisco Lopes francisco.mailing.lists at oblita.com
Sat Sep 1 10:10:53 PDT 2012

Ok, the problem of no visibility of underscored types at libc++ *location* is
not the real cause for losing visibility for types after using it's iterator

I've reduced the problem to template friendship usage:

namespace std
    template <class I> struct __W
        template<class E> friend class V;

    template <class T> struct V

int main()
    // There's visibility for *std::V* here

    std::__W<int> w;

    // There's NO visibility for *std::V* here

    return 0;

__wrap_iter and vector/basic_string have a pattern resembling the above, and
that's why after using a std::vector<int>::iterator, the std::vector
template is not given as a completion option after std::

View this message in context: http://clang-developers.42468.n3.nabble.com/Bug-13699-Types-unexpectedly-lose-visibility-This-is-happening-when-using-iterators-tp4026362p4026482.html
Sent from the Clang Developers mailing list archive at Nabble.com.

More information about the cfe-dev mailing list