git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@146345 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant 2011-12-11 20:31:33 +00:00
parent c00f75dc75
commit d4cf215e08
5 changed files with 40 additions and 8 deletions

View File

@ -215,7 +215,11 @@ namespace __gnu_cxx {
using namespace std; 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 class __hash_map_hasher
: private _Hash : private _Hash
{ {
@ -247,7 +251,11 @@ public:
{return __hash_(__x);} {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 class __hash_map_equal
: private _Pred : private _Pred
{ {

View File

@ -381,7 +381,11 @@ swap(multimap<Key, T, Compare, Allocator>& x,
_LIBCPP_BEGIN_NAMESPACE_STD _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 class __map_value_compare
: private _Compare : private _Compare
{ {

View File

@ -1848,8 +1848,16 @@ public:
template <class _T1, class _T2, bool = is_same<typename remove_cv<_T1>::type, template <class _T1, class _T2, bool = is_same<typename remove_cv<_T1>::type,
typename remove_cv<_T2>::type>::value, typename remove_cv<_T2>::type>::value,
bool = is_empty<_T1>::value, bool = is_empty<_T1>::value
bool = is_empty<_T2>::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; struct __libcpp_compressed_pair_switch;
template <class _T1, class _T2, bool IsSame> template <class _T1, class _T2, bool IsSame>

View File

@ -146,7 +146,11 @@ public:
// __tuple_leaf // __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; class __tuple_leaf;
template <size_t _Ip, class _Hp, bool _Ep> template <size_t _Ip, class _Hp, bool _Ep>

View File

@ -325,7 +325,11 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
_LIBCPP_BEGIN_NAMESPACE_STD _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 class __unordered_map_hasher
: private _Hash : private _Hash
{ {
@ -371,7 +375,11 @@ public:
{return __hash_(__x);} {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 class __unordered_map_equal
: private _Pred : private _Pred
{ {