Patchwork [v3] Avoid including the whole <limits> in a couple of places + small fix to std::duration_values

login
register
mail settings
Submitter Paolo Carlini
Date June 8, 2011, 12:13 p.m.
Message ID <4DEF6786.8030404@oracle.com>
Download mbox | patch
Permalink /patch/99418/
State New
Headers show

Comments

Paolo Carlini - June 8, 2011, 12:13 p.m.
Hi,

tested x86_64-linux, committed.

Paolo.

///////////////////////
2011-06-08  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/extptr_allocator.h: Include <ext/numeric_traits.h>
	instead of <limits>.
	* include/bits/allocator.h: Likewise.

	* include/std/chrono (duration_values<>::min): Call lowest, not min.

Patch

Index: include/std/chrono
===================================================================
--- include/std/chrono	(revision 174804)
+++ include/std/chrono	(working copy)
@@ -203,7 +203,7 @@ 
 
 	static constexpr _Rep
 	min()
-	{ return numeric_limits<_Rep>::min(); }
+	{ return numeric_limits<_Rep>::lowest(); }
       };
 
     template<typename T>
Index: include/ext/extptr_allocator.h
===================================================================
--- include/ext/extptr_allocator.h	(revision 174804)
+++ include/ext/extptr_allocator.h	(working copy)
@@ -1,6 +1,6 @@ 
 // <extptr_allocator.h> -*- C++ -*-
 
-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011 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
@@ -37,7 +37,7 @@ 
 #define _EXTPTR_ALLOCATOR_H 1
 
 #include <memory>
-#include <limits>
+#include <ext/numeric_traits.h>
 #include <ext/pointer.h>
 
 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
@@ -98,7 +98,7 @@ 
       { _M_real_alloc.deallocate(__p.get(), __n); }
 
       size_type max_size() const throw()
-      { return std::numeric_limits<size_type>::max() / sizeof(_Tp); }
+      { return __numeric_traits<size_type>::__max / sizeof(_Tp); }
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       template<typename _Up, typename... _Args>
@@ -111,6 +111,7 @@ 
         destroy(_Up* __p)
         { __p->~_Up(); }
 #else
+
       void construct(pointer __p, const _Tp& __val)
       { ::new(__p.get()) _Tp(__val); }
 
Index: include/bits/allocator.h
===================================================================
--- include/bits/allocator.h	(revision 174804)
+++ include/bits/allocator.h	(working copy)
@@ -50,7 +50,7 @@ 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 #include <bits/ptr_traits.h>
 #include <bits/uses_allocator.h>
-#include <limits>
+#include <ext/numeric_traits.h>
 #endif
 
 namespace std _GLIBCXX_VISIBILITY(default)
@@ -477,7 +477,7 @@ 
 	static typename
        	enable_if<!__maxsize_helper<_Alloc2>::value, size_type>::type
 	_S_max_size(_Alloc2&)
-	{ return numeric_limits<size_type>::max(); }
+	{ return __gnu_cxx::__numeric_traits<size_type>::__max; }
 
       template<typename _Alloc2>
 	struct __select_helper