[libc++] Use numeric_limits instead of raw INT_MAX
authorLouis Dionne <ldionne.2@gmail.com>
Thu, 17 Nov 2022 15:33:08 +0000 (10:33 -0500)
committerLouis Dionne <ldionne.2@gmail.com>
Fri, 18 Nov 2022 16:32:14 +0000 (11:32 -0500)
This allows discard_block_engine to work on platforms that might not
provide a full <limits.h> header.

Differential Revision: https://reviews.llvm.org/D138212

libcxx/include/__random/discard_block_engine.h
libcxx/include/random
libcxx/test/libcxx/transitive_includes/cxx2b.csv

index 57f454b..db33623 100644 (file)
@@ -12,8 +12,8 @@
 #include <__config>
 #include <__random/is_seed_sequence.h>
 #include <__utility/move.h>
-#include <climits>
 #include <iosfwd>
+#include <limits>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
@@ -33,7 +33,9 @@ class _LIBCPP_TEMPLATE_VIS discard_block_engine
 
     static_assert(  0 <  __r, "discard_block_engine invalid parameters");
     static_assert(__r <= __p, "discard_block_engine invalid parameters");
-    static_assert(__r <= INT_MAX, "discard_block_engine invalid parameters");
+#ifndef _LIBCPP_CXX03_LANG // numeric_limits::max() is not constexpr in C++03
+    static_assert(__r <= numeric_limits<int>::max(), "discard_block_engine invalid parameters");
+#endif
 public:
     // types
     typedef typename _Engine::result_type result_type;
index f8077f1..5fe4906 100644 (file)
@@ -1729,6 +1729,7 @@ class piecewise_linear_distribution
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <climits>
 #  include <cmath>
 #  include <concepts>
 #  include <cstddef>
index b00cba3..c8750c2 100644 (file)
@@ -502,7 +502,6 @@ queue type_traits
 queue vector
 queue version
 random bit
-random climits
 random cmath
 random cstddef
 random cstdint