Fix http://llvm.org/bugs/show_bug.cgi?id=11461. Credit Alberto Ganesh Barbati.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@146345 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c00f75dc75
commit
d4cf215e08
@ -215,7 +215,11 @@ namespace __gnu_cxx {
|
||||
|
||||
using namespace std;
|
||||
|
||||
template <class _Tp, class _Hash, bool = is_empty<_Hash>::value>
|
||||
template <class _Tp, class _Hash, bool = is_empty<_Hash>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_Hash)
|
||||
#endif
|
||||
>
|
||||
class __hash_map_hasher
|
||||
: private _Hash
|
||||
{
|
||||
@ -247,7 +251,11 @@ public:
|
||||
{return __hash_(__x);}
|
||||
};
|
||||
|
||||
template <class _Tp, class _Pred, bool = is_empty<_Pred>::value>
|
||||
template <class _Tp, class _Pred, bool = is_empty<_Pred>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_Pred)
|
||||
#endif
|
||||
>
|
||||
class __hash_map_equal
|
||||
: private _Pred
|
||||
{
|
||||
|
@ -381,7 +381,11 @@ swap(multimap<Key, T, Compare, Allocator>& x,
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Key, class _Tp, class _Compare, bool = is_empty<_Compare>::value>
|
||||
template <class _Key, class _Tp, class _Compare, bool = is_empty<_Compare>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_Compare)
|
||||
#endif
|
||||
>
|
||||
class __map_value_compare
|
||||
: private _Compare
|
||||
{
|
||||
|
@ -1848,8 +1848,16 @@ public:
|
||||
|
||||
template <class _T1, class _T2, bool = is_same<typename remove_cv<_T1>::type,
|
||||
typename remove_cv<_T2>::type>::value,
|
||||
bool = is_empty<_T1>::value,
|
||||
bool = is_empty<_T2>::value>
|
||||
bool = is_empty<_T1>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_T1)
|
||||
#endif
|
||||
,
|
||||
bool = is_empty<_T2>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_T2)
|
||||
#endif
|
||||
>
|
||||
struct __libcpp_compressed_pair_switch;
|
||||
|
||||
template <class _T1, class _T2, bool IsSame>
|
||||
|
@ -146,7 +146,11 @@ public:
|
||||
|
||||
// __tuple_leaf
|
||||
|
||||
template <size_t _Ip, class _Hp, bool=is_empty<_Hp>::value>
|
||||
template <size_t _Ip, class _Hp, bool=is_empty<_Hp>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_Hp)
|
||||
#endif
|
||||
>
|
||||
class __tuple_leaf;
|
||||
|
||||
template <size_t _Ip, class _Hp, bool _Ep>
|
||||
|
@ -325,7 +325,11 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp, class _Hash, bool = is_empty<_Hash>::value>
|
||||
template <class _Tp, class _Hash, bool = is_empty<_Hash>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_Hash)
|
||||
#endif
|
||||
>
|
||||
class __unordered_map_hasher
|
||||
: private _Hash
|
||||
{
|
||||
@ -371,7 +375,11 @@ public:
|
||||
{return __hash_(__x);}
|
||||
};
|
||||
|
||||
template <class _Tp, class _Pred, bool = is_empty<_Pred>::value>
|
||||
template <class _Tp, class _Pred, bool = is_empty<_Pred>::value
|
||||
#if __has_feature(is_final)
|
||||
&& !__is_final(_Pred)
|
||||
#endif
|
||||
>
|
||||
class __unordered_map_equal
|
||||
: private _Pred
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user