summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely.gcc@gmail.com>2012-07-16 20:43:11 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2012-07-16 21:43:11 +0100
commit8db81fb2feeb722b0b49db4750e58fc1ecd05bff (patch)
treea45ab54f7f6447cf29ea8247f56bbe95204a64c2 /libstdc++-v3
parent1b667f1bb41b795971e965d61a1733b31c36acc9 (diff)
downloadgcc-8db81fb2feeb722b0b49db4750e58fc1ecd05bff.tar.gz
re PR libstdc++/53978 (Missing static const definitions in <bits/alloc_traits.h>)
PR libstdc++/53978 * include/bits/alloc_traits.h (allocator_traits): Define static constants. * include/bits/ptr_traits.h (pointer_traits): Likewise. * include/ext/alloc_traits.h (__allocator_always_compares_equal): Likewise. From-SVN: r189547
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/include/bits/alloc_traits.h26
-rw-r--r--libstdc++-v3/include/bits/ptr_traits.h5
-rw-r--r--libstdc++-v3/include/ext/alloc_traits.h27
4 files changed, 61 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a19f33c4882..e1f8bd9bebd 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,12 @@
+2012-07-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/53978
+ * include/bits/alloc_traits.h (allocator_traits): Define static
+ constants.
+ * include/bits/ptr_traits.h (pointer_traits): Likewise.
+ * include/ext/alloc_traits.h (__allocator_always_compares_equal):
+ Likewise.
+
2012-07-13 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/53657
diff --git a/libstdc++-v3/include/bits/alloc_traits.h b/libstdc++-v3/include/bits/alloc_traits.h
index e1f4d41a6d0..80cc956a6fb 100644
--- a/libstdc++-v3/include/bits/alloc_traits.h
+++ b/libstdc++-v3/include/bits/alloc_traits.h
@@ -1,6 +1,6 @@
// Allocator traits -*- C++ -*-
-// Copyright (C) 2011 Free Software Foundation, Inc.
+// Copyright (C) 2011-2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -56,6 +56,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const bool __value = _S_chk<_Alloc, _Tp>(nullptr);
};
+ template<typename _Alloc, typename _Tp>
+ const bool __alloctr_rebind_helper<_Alloc, _Tp>::__value;
+
template<typename _Alloc, typename _Tp,
bool = __alloctr_rebind_helper<_Alloc, _Tp>::__value>
struct __alloctr_rebind;
@@ -423,6 +426,27 @@ _GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_swap,
};
template<typename _Alloc>
+ template<typename _Alloc2>
+ const bool allocator_traits<_Alloc>::__allocate_helper<_Alloc2>::value;
+
+ template<typename _Alloc>
+ template<typename _Tp, typename... _Args>
+ const bool
+ allocator_traits<_Alloc>::__construct_helper<_Tp, _Args...>::value;
+
+ template<typename _Alloc>
+ template<typename _Tp>
+ const bool allocator_traits<_Alloc>::__destroy_helper<_Tp>::value;
+
+ template<typename _Alloc>
+ template<typename _Alloc2>
+ const bool allocator_traits<_Alloc>::__maxsize_helper<_Alloc2>::value;
+
+ template<typename _Alloc>
+ template<typename _Alloc2>
+ const bool allocator_traits<_Alloc>::__select_helper<_Alloc2>::value;
+
+ template<typename _Alloc>
inline void
__do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type)
{ __one = __two; }
diff --git a/libstdc++-v3/include/bits/ptr_traits.h b/libstdc++-v3/include/bits/ptr_traits.h
index bba9b49bfc6..552f48745f3 100644
--- a/libstdc++-v3/include/bits/ptr_traits.h
+++ b/libstdc++-v3/include/bits/ptr_traits.h
@@ -1,6 +1,6 @@
// Pointer Traits -*- C++ -*-
-// Copyright (C) 2011 Free Software Foundation, Inc.
+// Copyright (C) 2011-2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -86,6 +86,9 @@ _GLIBCXX_HAS_NESTED_TYPE(difference_type)
static const bool __value = _S_chk<_Ptr, _Up>(nullptr);
};
+ template<typename _Ptr, typename _Up>
+ const bool __ptrtr_rebind_helper<_Ptr, _Up>::__value;
+
template<typename _Tp, typename _Up,
bool = __ptrtr_rebind_helper<_Tp, _Up>::__value>
struct __ptrtr_rebind;
diff --git a/libstdc++-v3/include/ext/alloc_traits.h b/libstdc++-v3/include/ext/alloc_traits.h
index b3e3af663a6..b66f818a37a 100644
--- a/libstdc++-v3/include/ext/alloc_traits.h
+++ b/libstdc++-v3/include/ext/alloc_traits.h
@@ -1,6 +1,6 @@
// Allocator traits -*- C++ -*-
-// Copyright (C) 2011 Free Software Foundation, Inc.
+// Copyright (C) 2011-2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -49,37 +49,56 @@ namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
_GLIBCXX_BEGIN_NAMESPACE_VERSION
#ifdef __GXX_EXPERIMENTAL_CXX0X__
-template<typename _Alloc>
- struct __allocator_always_compares_equal
- { static const bool value = false; };
+ template<typename _Alloc>
+ struct __allocator_always_compares_equal
+ { static const bool value = false; };
+
+ template<typename _Alloc>
+ const bool __allocator_always_compares_equal<_Alloc>::value;
template<typename _Tp>
struct __allocator_always_compares_equal<std::allocator<_Tp>>
{ static const bool value = true; };
+ template<typename _Tp>
+ const bool __allocator_always_compares_equal<std::allocator<_Tp>>::value;
+
template<typename, typename> struct array_allocator;
template<typename _Tp, typename _Array>
struct __allocator_always_compares_equal<array_allocator<_Tp, _Array>>
{ static const bool value = true; };
+ template<typename _Tp, typename _Array>
+ const bool
+ __allocator_always_compares_equal<array_allocator<_Tp, _Array>>::value;
+
template<typename> struct mt_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<mt_allocator<_Tp>>
{ static const bool value = true; };
+ template<typename _Tp>
+ const bool __allocator_always_compares_equal<mt_allocator<_Tp>>::value;
+
template<typename> struct new_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<new_allocator<_Tp>>
{ static const bool value = true; };
+ template<typename _Tp>
+ const bool __allocator_always_compares_equal<new_allocator<_Tp>>::value;
+
template<typename> struct pool_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<pool_allocator<_Tp>>
{ static const bool value = true; };
+
+ template<typename _Tp>
+ const bool __allocator_always_compares_equal<pool_allocator<_Tp>>::value;
#endif
/**