Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188192 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant
2013-08-12 18:38:34 +00:00
parent 80e19ac90f
commit 0f678bd69e
61 changed files with 912 additions and 886 deletions

View File

@@ -19,10 +19,10 @@
namespace __gnu_cxx {
using namespace std;
template <typename T> struct _LIBCPP_TYPE_VIS hash : public std::hash<T>
template <typename T> struct _LIBCPP_TYPE_VIS_ONLY hash : public std::hash<T>
{ };
template <> struct _LIBCPP_TYPE_VIS hash<const char*>
template <> struct _LIBCPP_TYPE_VIS_ONLY hash<const char*>
: public unary_function<const char*, size_t>
{
_LIBCPP_INLINE_VISIBILITY
@@ -32,7 +32,7 @@ template <> struct _LIBCPP_TYPE_VIS hash<const char*>
}
};
template <> struct _LIBCPP_TYPE_VIS hash<char *>
template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char *>
: public unary_function<char*, size_t>
{
_LIBCPP_INLINE_VISIBILITY

View File

@@ -361,7 +361,7 @@ public:
};
template <class _HashIterator>
class _LIBCPP_TYPE_VIS __hash_map_iterator
class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator
{
_HashIterator __i_;
@@ -404,15 +404,15 @@ public:
bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
{return __x.__i_ != __y.__i_;}
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS hash_map;
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS hash_multimap;
template <class> friend class _LIBCPP_TYPE_VIS __hash_const_iterator;
template <class> friend class _LIBCPP_TYPE_VIS __hash_const_local_iterator;
template <class> friend class _LIBCPP_TYPE_VIS __hash_map_const_iterator;
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_map;
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap;
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
};
template <class _HashIterator>
class _LIBCPP_TYPE_VIS __hash_map_const_iterator
class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator
{
_HashIterator __i_;
@@ -463,15 +463,15 @@ public:
bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
{return __x.__i_ != __y.__i_;}
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS hash_map;
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS hash_multimap;
template <class> friend class _LIBCPP_TYPE_VIS __hash_const_iterator;
template <class> friend class _LIBCPP_TYPE_VIS __hash_const_local_iterator;
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_map;
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap;
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
};
template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
class _Alloc = allocator<pair<const _Key, _Tp> > >
class _LIBCPP_TYPE_VIS hash_map
class _LIBCPP_TYPE_VIS_ONLY hash_map
{
public:
// types
@@ -750,7 +750,7 @@ operator!=(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
class _Alloc = allocator<pair<const _Key, _Tp> > >
class _LIBCPP_TYPE_VIS hash_multimap
class _LIBCPP_TYPE_VIS_ONLY hash_multimap
{
public:
// types

View File

@@ -208,7 +208,7 @@ using namespace std;
template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
class _Alloc = allocator<_Value> >
class _LIBCPP_TYPE_VIS hash_set
class _LIBCPP_TYPE_VIS_ONLY hash_set
{
public:
// types
@@ -429,7 +429,7 @@ operator!=(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x,
template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
class _Alloc = allocator<_Value> >
class _LIBCPP_TYPE_VIS hash_multiset
class _LIBCPP_TYPE_VIS_ONLY hash_multiset
{
public:
// types