[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