Fix g++ issues.

[SVN r81222]
This commit is contained in:
Peter Dimov
2012-11-06 15:10:32 +00:00
parent e7d3987cfb
commit d8eb2fc105
4 changed files with 16 additions and 16 deletions

View File

@ -19,7 +19,7 @@ namespace boost {
template<typename T, typename A>
inline typename detail::sp_if_array<T>::type
allocate_shared(const A& allocator, size_t size) {
typedef typename remove_cv<shared_ptr<T>::element_type>::type T1;
typedef typename remove_cv<typename shared_ptr<T>::element_type>::type T1;
T1* p1 = 0;
detail::allocate_array_helper<A, T1> a1(allocator, size, &p1);
detail::array_deleter<T1> d1;
@ -33,7 +33,7 @@ namespace boost {
template<typename T, typename A, typename... Args>
inline typename detail::sp_if_array<T>::type
allocate_shared(const A& allocator, size_t size, Args&&... args) {
typedef typename remove_cv<shared_ptr<T>::element_type>::type T1;
typedef typename remove_cv<typename shared_ptr<T>::element_type>::type T1;
T1* p1 = 0;
detail::allocate_array_helper<A, T1> a1(allocator, size, &p1);
detail::array_deleter<T1> d1;

View File

@ -16,10 +16,10 @@ namespace boost {
namespace detail {
template<typename A, typename T, typename Y = T>
class allocate_array_helper {
template<typename A, typename T, typename Y>
template<typename A9, typename T9, typename Y9>
friend class allocate_array_helper;
typedef typename A::rebind<Y> ::other A2;
typedef typename A::rebind<char>::other A3;
typedef typename A::template rebind<Y> ::other A2;
typedef typename A::template rebind<char>::other A3;
public:
typedef typename A2::value_type value_type;
typedef typename A2::pointer pointer;

View File

@ -16,16 +16,16 @@ namespace boost {
namespace detail {
template<typename T, typename Y = T>
class make_array_helper {
template<typename T, typename Y>
template<typename T2, typename Y2>
friend class make_array_helper;
public:
typedef typename Y value_type;
typedef typename Y* pointer;
typedef typename const Y* const_pointer;
typedef typename Y& reference;
typedef typename const Y& const_reference;
typedef typename std::size_t size_type;
typedef typename ptrdiff_t difference_type;
typedef Y value_type;
typedef Y* pointer;
typedef const Y* const_pointer;
typedef Y& reference;
typedef const Y& const_reference;
typedef std::size_t size_type;
typedef ptrdiff_t difference_type;
template<typename U>
struct rebind {
typedef make_array_helper<T, U> other;

View File

@ -19,7 +19,7 @@ namespace boost {
template<typename T>
inline typename detail::sp_if_array<T>::type
make_shared(std::size_t size) {
typedef typename remove_cv<shared_ptr<T>::element_type>::type T1;
typedef typename remove_cv<typename shared_ptr<T>::element_type>::type T1;
T1* p1 = 0;
detail::make_array_helper<T1> a1(size, &p1);
detail::array_deleter<T1> d1;
@ -33,7 +33,7 @@ namespace boost {
template<typename T, typename... Args>
inline typename detail::sp_if_array<T>::type
make_shared(std::size_t size, Args&&... args) {
typedef typename remove_cv<shared_ptr<T>::element_type>::type T1;
typedef typename remove_cv<typename shared_ptr<T>::element_type>::type T1;
T1* p1 = 0;
detail::make_array_helper<T1> a1(size, &p1);
detail::array_deleter<T1> d1;
@ -47,7 +47,7 @@ namespace boost {
template<typename T>
inline typename detail::sp_if_array<T>::type
make_shared_noinit(std::size_t size) {
typedef typename remove_cv<shared_ptr<T>::element_type>::type T1;
typedef typename remove_cv<typename shared_ptr<T>::element_type>::type T1;
T1* p1 = 0;
detail::make_array_helper<T1> a1(size, &p1);
detail::array_deleter<T1> d1;