[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
types.

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
    std::

    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