diff options
Diffstat (limited to 'libcxx/include/__random/uniform_int_distribution.h')
| -rw-r--r-- | libcxx/include/__random/uniform_int_distribution.h | 23 | 
1 files changed, 11 insertions, 12 deletions
| diff --git a/libcxx/include/__random/uniform_int_distribution.h b/libcxx/include/__random/uniform_int_distribution.h index 46b627f45da9..b7db8a3f9cbb 100644 --- a/libcxx/include/__random/uniform_int_distribution.h +++ b/libcxx/include/__random/uniform_int_distribution.h @@ -9,7 +9,6 @@  #ifndef _LIBCPP___RANDOM_UNIFORM_INT_DISTRIBUTION_H  #define _LIBCPP___RANDOM_UNIFORM_INT_DISTRIBUTION_H -#include <__bits>  #include <__config>  #include <__random/is_valid.h>  #include <__random/log2.h> @@ -38,12 +37,8 @@ public:  private:      typedef typename _Engine::result_type _Engine_result_type; -    typedef typename conditional -        < -            sizeof(_Engine_result_type) <= sizeof(result_type), -                result_type, -                _Engine_result_type -        >::type _Working_result_type; +    typedef __conditional_t<sizeof(_Engine_result_type) <= sizeof(result_type), result_type, _Engine_result_type> +        _Working_result_type;      _Engine& __e_;      size_t __w_; @@ -178,8 +173,10 @@ public:          result_type a() const {return __a_;}          result_type b() const {return __b_;} +        _LIBCPP_HIDE_FROM_ABI          friend bool operator==(const param_type& __x, const param_type& __y)              {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;} +        _LIBCPP_HIDE_FROM_ABI          friend bool operator!=(const param_type& __x, const param_type& __y)              {return !(__x == __y);}      }; @@ -218,9 +215,11 @@ public:      result_type min() const {return a();}      result_type max() const {return b();} +    _LIBCPP_HIDE_FROM_ABI      friend bool operator==(const uniform_int_distribution& __x,                             const uniform_int_distribution& __y)          {return __x.__p_ == __y.__p_;} +    _LIBCPP_HIDE_FROM_ABI      friend bool operator!=(const uniform_int_distribution& __x,                             const uniform_int_distribution& __y)              {return !(__x == __y);} @@ -233,8 +232,8 @@ uniform_int_distribution<_IntType>::operator()(_URNG& __g, const param_type& __p  _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK  {      static_assert(__libcpp_random_is_valid_urng<_URNG>::value, ""); -    typedef typename conditional<sizeof(result_type) <= sizeof(uint32_t), uint32_t, -                                 typename make_unsigned<result_type>::type>::type _UIntType; +    typedef __conditional_t<sizeof(result_type) <= sizeof(uint32_t), uint32_t, __make_unsigned_t<result_type> > +        _UIntType;      const _UIntType _Rp = _UIntType(__p.b()) - _UIntType(__p.a()) + _UIntType(1);      if (_Rp == 1)          return __p.a(); @@ -242,7 +241,7 @@ _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK      typedef __independent_bits_engine<_URNG, _UIntType> _Eng;      if (_Rp == 0)          return static_cast<result_type>(_Eng(__g, _Dt)()); -    size_t __w = _Dt - __countl_zero(_Rp) - 1; +    size_t __w = _Dt - std::__countl_zero(_Rp) - 1;      if ((_Rp & (numeric_limits<_UIntType>::max() >> (_Dt - __w))) != 0)          ++__w;      _Eng __e(__g, __w); @@ -255,7 +254,7 @@ _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK  }  template <class _CharT, class _Traits, class _IT> -basic_ostream<_CharT, _Traits>& +_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&  operator<<(basic_ostream<_CharT, _Traits>& __os,             const uniform_int_distribution<_IT>& __x)  { @@ -268,7 +267,7 @@ operator<<(basic_ostream<_CharT, _Traits>& __os,  }  template <class _CharT, class _Traits, class _IT> -basic_istream<_CharT, _Traits>& +_LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>&  operator>>(basic_istream<_CharT, _Traits>& __is,             uniform_int_distribution<_IT>& __x)  { | 
