mirror of
https://github.com/darlinghq/darling-libcxx.git
synced 2024-11-26 21:30:42 +00:00
Merging r170026: into the 3.2 release branch.
Zhang Xiongpang: Add definitions for const data members. Fixes http://llvm.org/bugs/show_bug.cgi?id=14585. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/branches/release_32@170137 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
864e2aaa4c
commit
1b3775e38c
188
include/limits
188
include/limits
@ -478,6 +478,53 @@ public:
|
||||
static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_specialized;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_digits10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_signed;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_integer;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_exact;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::radix;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_infinity;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_quiet_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_signaling_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<_Tp>::has_denorm;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_denorm_loss;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_iec559;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_bounded;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_modulo;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::traps;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::tinyness_before;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_round_style numeric_limits<_Tp>::round_style;
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_VISIBLE numeric_limits<const _Tp>
|
||||
: private numeric_limits<_Tp>
|
||||
@ -524,6 +571,53 @@ public:
|
||||
static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_specialized;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::digits;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::digits10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_digits10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_signed;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_integer;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_exact;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::radix;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::min_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::min_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_infinity;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_quiet_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_signaling_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<const _Tp>::has_denorm;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_denorm_loss;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_iec559;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_bounded;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_modulo;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::traps;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::tinyness_before;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_round_style numeric_limits<const _Tp>::round_style;
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_VISIBLE numeric_limits<volatile _Tp>
|
||||
: private numeric_limits<_Tp>
|
||||
@ -570,6 +664,53 @@ public:
|
||||
static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_specialized;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::digits;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::digits10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_digits10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_signed;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_integer;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_exact;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::radix;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::min_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::min_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_infinity;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_quiet_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_signaling_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<volatile _Tp>::has_denorm;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_denorm_loss;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_iec559;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_bounded;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_modulo;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::traps;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::tinyness_before;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_round_style numeric_limits<volatile _Tp>::round_style;
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_VISIBLE numeric_limits<const volatile _Tp>
|
||||
: private numeric_limits<_Tp>
|
||||
@ -616,6 +757,53 @@ public:
|
||||
static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_specialized;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::digits;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::digits10;
|
||||
template <class _Tp>
|
||||
const int numeric_limits<const volatile _Tp>::max_digits10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_signed;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_integer;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_exact;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::radix;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::min_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::min_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::max_exponent;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::max_exponent10;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_infinity;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_quiet_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_signaling_NaN;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<const volatile _Tp>::has_denorm;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_denorm_loss;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_iec559;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_bounded;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_modulo;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::traps;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::tinyness_before;
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR const float_round_style numeric_limits<const volatile _Tp>::round_style;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // _LIBCPP_LIMITS
|
||||
|
@ -2885,6 +2885,10 @@ template <class _CharT, bool _International>
|
||||
locale::id
|
||||
moneypunct<_CharT, _International>::id;
|
||||
|
||||
template <class _CharT, bool _International>
|
||||
const bool
|
||||
moneypunct<_CharT, _International>::intl;
|
||||
|
||||
_LIBCPP_EXTERN_TEMPLATE(class moneypunct<char, false>)
|
||||
_LIBCPP_EXTERN_TEMPLATE(class moneypunct<char, true>)
|
||||
_LIBCPP_EXTERN_TEMPLATE(class moneypunct<wchar_t, false>)
|
||||
|
122
include/random
122
include/random
@ -1930,6 +1930,22 @@ private:
|
||||
linear_congruential_engine<_Up, _Ap, _Cp, _Np>& __x);
|
||||
};
|
||||
|
||||
template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
|
||||
_LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
|
||||
linear_congruential_engine<_UIntType, __a, __c, __m>::multiplier;
|
||||
|
||||
template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
|
||||
_LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
|
||||
linear_congruential_engine<_UIntType, __a, __c, __m>::increment;
|
||||
|
||||
template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
|
||||
_LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
|
||||
linear_congruential_engine<_UIntType, __a, __c, __m>::modulus;
|
||||
|
||||
template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
|
||||
_LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
|
||||
linear_congruential_engine<_UIntType, __a, __c, __m>::default_seed;
|
||||
|
||||
template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
|
||||
template<class _Sseq>
|
||||
void
|
||||
@ -2227,6 +2243,90 @@ private:
|
||||
__rshift(result_type) {return result_type(0);}
|
||||
};
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::word_size;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::state_size;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::shift_size;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::mask_bits;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::xor_mask;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_u;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_d;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_s;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_b;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_t;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_c;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const size_t
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_l;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::initialization_multiplier;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
_LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
|
||||
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::default_seed;
|
||||
|
||||
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
|
||||
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
|
||||
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
|
||||
@ -2551,6 +2651,19 @@ private:
|
||||
void __seed(_Sseq& __q, integral_constant<unsigned, 2>);
|
||||
};
|
||||
|
||||
template<class _UIntType, size_t __w, size_t __s, size_t __r>
|
||||
_LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::word_size;
|
||||
|
||||
template<class _UIntType, size_t __w, size_t __s, size_t __r>
|
||||
_LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::short_lag;
|
||||
|
||||
template<class _UIntType, size_t __w, size_t __s, size_t __r>
|
||||
_LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::long_lag;
|
||||
|
||||
template<class _UIntType, size_t __w, size_t __s, size_t __r>
|
||||
_LIBCPP_CONSTEXPR const typename subtract_with_carry_engine<_UIntType, __w, __s, __r>::result_type
|
||||
subtract_with_carry_engine<_UIntType, __w, __s, __r>::default_seed;
|
||||
|
||||
template<class _UIntType, size_t __w, size_t __s, size_t __r>
|
||||
void
|
||||
subtract_with_carry_engine<_UIntType, __w, __s, __r>::seed(result_type __sd,
|
||||
@ -2822,6 +2935,12 @@ public:
|
||||
discard_block_engine<_Eng, _Pp, _Rp>& __x);
|
||||
};
|
||||
|
||||
template<class _Engine, size_t __p, size_t __r>
|
||||
_LIBCPP_CONSTEXPR const size_t discard_block_engine<_Engine, __p, __r>::block_size;
|
||||
|
||||
template<class _Engine, size_t __p, size_t __r>
|
||||
_LIBCPP_CONSTEXPR const size_t discard_block_engine<_Engine, __p, __r>::used_block;
|
||||
|
||||
template<class _Engine, size_t __p, size_t __r>
|
||||
typename discard_block_engine<_Engine, __p, __r>::result_type
|
||||
discard_block_engine<_Engine, __p, __r>::operator()()
|
||||
@ -3314,6 +3433,9 @@ private:
|
||||
}
|
||||
};
|
||||
|
||||
template<class _Engine, size_t __k>
|
||||
_LIBCPP_CONSTEXPR const size_t shuffle_order_engine<_Engine, __k>::table_size;
|
||||
|
||||
template<class _Eng, size_t _Kp>
|
||||
bool
|
||||
operator==(
|
||||
|
@ -2842,6 +2842,27 @@ private:
|
||||
template <class, class> friend class __lookahead;
|
||||
};
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::icase;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::nosubs;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::optimize;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::collate;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::ECMAScript;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::basic;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::extended;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::awk;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::grep;
|
||||
template <class _CharT, class _Traits>
|
||||
const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::egrep;
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
void
|
||||
basic_regex<_CharT, _Traits>::swap(basic_regex& __r)
|
||||
|
@ -24,6 +24,8 @@ namespace chrono
|
||||
|
||||
// system_clock
|
||||
|
||||
const bool system_clock::is_steady;
|
||||
|
||||
system_clock::time_point
|
||||
system_clock::now() _NOEXCEPT
|
||||
{
|
||||
@ -46,6 +48,8 @@ system_clock::from_time_t(time_t t) _NOEXCEPT
|
||||
|
||||
// steady_clock
|
||||
|
||||
const bool steady_clock::is_steady;
|
||||
|
||||
#if __APPLE__
|
||||
// mach_absolute_time() * MachInfo.numer / MachInfo.denom is the number of
|
||||
// nanoseconds since the computer booted up. MachInfo.numer and MachInfo.denom
|
||||
|
@ -83,6 +83,15 @@ make(A0 a0, A1 a1, A2 a2)
|
||||
|
||||
}
|
||||
|
||||
const locale::category locale::none;
|
||||
const locale::category locale::collate;
|
||||
const locale::category locale::ctype;
|
||||
const locale::category locale::monetary;
|
||||
const locale::category locale::numeric;
|
||||
const locale::category locale::time;
|
||||
const locale::category locale::messages;
|
||||
const locale::category locale::all;
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wpadded"
|
||||
|
||||
@ -691,6 +700,19 @@ collate_byname<wchar_t>::do_transform(const char_type* lo, const char_type* hi)
|
||||
|
||||
// template <> class ctype<wchar_t>;
|
||||
|
||||
const ctype_base::mask ctype_base::space;
|
||||
const ctype_base::mask ctype_base::print;
|
||||
const ctype_base::mask ctype_base::cntrl;
|
||||
const ctype_base::mask ctype_base::upper;
|
||||
const ctype_base::mask ctype_base::lower;
|
||||
const ctype_base::mask ctype_base::alpha;
|
||||
const ctype_base::mask ctype_base::digit;
|
||||
const ctype_base::mask ctype_base::punct;
|
||||
const ctype_base::mask ctype_base::xdigit;
|
||||
const ctype_base::mask ctype_base::blank;
|
||||
const ctype_base::mask ctype_base::alnum;
|
||||
const ctype_base::mask ctype_base::graph;
|
||||
|
||||
locale::id ctype<wchar_t>::id;
|
||||
|
||||
ctype<wchar_t>::~ctype()
|
||||
|
@ -0,0 +1,185 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <limits>
|
||||
|
||||
/*
|
||||
<limits>:
|
||||
numeric_limits
|
||||
is_specialized
|
||||
digits
|
||||
digits10
|
||||
max_digits10
|
||||
is_signed
|
||||
is_integer
|
||||
is_exact
|
||||
radix
|
||||
min_exponent
|
||||
min_exponent10
|
||||
max_exponent
|
||||
max_exponent10
|
||||
has_infinity
|
||||
has_quiet_NaN
|
||||
has_signaling_NaN
|
||||
has_denorm
|
||||
has_denorm_loss
|
||||
is_iec559
|
||||
is_bounded
|
||||
is_modulo
|
||||
traps
|
||||
tinyness_before
|
||||
round_style
|
||||
*/
|
||||
|
||||
template <class _Tp>
|
||||
void test(const _Tp &) {}
|
||||
|
||||
#define TEST_NUMERIC_LIMITS(type) \
|
||||
test(std::numeric_limits<type>::is_specialized); \
|
||||
test(std::numeric_limits<type>::digits); \
|
||||
test(std::numeric_limits<type>::digits10); \
|
||||
test(std::numeric_limits<type>::max_digits10); \
|
||||
test(std::numeric_limits<type>::is_signed); \
|
||||
test(std::numeric_limits<type>::is_integer); \
|
||||
test(std::numeric_limits<type>::is_exact); \
|
||||
test(std::numeric_limits<type>::radix); \
|
||||
test(std::numeric_limits<type>::min_exponent); \
|
||||
test(std::numeric_limits<type>::min_exponent10); \
|
||||
test(std::numeric_limits<type>::max_exponent); \
|
||||
test(std::numeric_limits<type>::max_exponent10); \
|
||||
test(std::numeric_limits<type>::has_infinity); \
|
||||
test(std::numeric_limits<type>::has_quiet_NaN); \
|
||||
test(std::numeric_limits<type>::has_signaling_NaN); \
|
||||
test(std::numeric_limits<type>::has_denorm); \
|
||||
test(std::numeric_limits<type>::has_denorm_loss); \
|
||||
test(std::numeric_limits<type>::is_iec559); \
|
||||
test(std::numeric_limits<type>::is_bounded); \
|
||||
test(std::numeric_limits<type>::is_modulo); \
|
||||
test(std::numeric_limits<type>::traps); \
|
||||
test(std::numeric_limits<type>::tinyness_before); \
|
||||
test(std::numeric_limits<type>::round_style);
|
||||
|
||||
struct other {};
|
||||
|
||||
int main()
|
||||
{
|
||||
// bool
|
||||
TEST_NUMERIC_LIMITS(bool)
|
||||
TEST_NUMERIC_LIMITS(const bool)
|
||||
TEST_NUMERIC_LIMITS(volatile bool)
|
||||
TEST_NUMERIC_LIMITS(const volatile bool)
|
||||
|
||||
// char
|
||||
TEST_NUMERIC_LIMITS(char)
|
||||
TEST_NUMERIC_LIMITS(const char)
|
||||
TEST_NUMERIC_LIMITS(volatile char)
|
||||
TEST_NUMERIC_LIMITS(const volatile char)
|
||||
|
||||
// signed char
|
||||
TEST_NUMERIC_LIMITS(signed char)
|
||||
TEST_NUMERIC_LIMITS(const signed char)
|
||||
TEST_NUMERIC_LIMITS(volatile signed char)
|
||||
TEST_NUMERIC_LIMITS(const volatile signed char)
|
||||
|
||||
// unsigned char
|
||||
TEST_NUMERIC_LIMITS(unsigned char)
|
||||
TEST_NUMERIC_LIMITS(const unsigned char)
|
||||
TEST_NUMERIC_LIMITS(volatile unsigned char)
|
||||
TEST_NUMERIC_LIMITS(const volatile unsigned char)
|
||||
|
||||
// wchar_t
|
||||
TEST_NUMERIC_LIMITS(wchar_t)
|
||||
TEST_NUMERIC_LIMITS(const wchar_t)
|
||||
TEST_NUMERIC_LIMITS(volatile wchar_t)
|
||||
TEST_NUMERIC_LIMITS(const volatile wchar_t)
|
||||
|
||||
// char16_t
|
||||
TEST_NUMERIC_LIMITS(char16_t)
|
||||
TEST_NUMERIC_LIMITS(const char16_t)
|
||||
TEST_NUMERIC_LIMITS(volatile char16_t)
|
||||
TEST_NUMERIC_LIMITS(const volatile char16_t)
|
||||
|
||||
// char32_t
|
||||
TEST_NUMERIC_LIMITS(char32_t)
|
||||
TEST_NUMERIC_LIMITS(const char32_t)
|
||||
TEST_NUMERIC_LIMITS(volatile char32_t)
|
||||
TEST_NUMERIC_LIMITS(const volatile char32_t)
|
||||
|
||||
// short
|
||||
TEST_NUMERIC_LIMITS(short)
|
||||
TEST_NUMERIC_LIMITS(const short)
|
||||
TEST_NUMERIC_LIMITS(volatile short)
|
||||
TEST_NUMERIC_LIMITS(const volatile short)
|
||||
|
||||
// int
|
||||
TEST_NUMERIC_LIMITS(int)
|
||||
TEST_NUMERIC_LIMITS(const int)
|
||||
TEST_NUMERIC_LIMITS(volatile int)
|
||||
TEST_NUMERIC_LIMITS(const volatile int)
|
||||
|
||||
// long
|
||||
TEST_NUMERIC_LIMITS(long)
|
||||
TEST_NUMERIC_LIMITS(const long)
|
||||
TEST_NUMERIC_LIMITS(volatile long)
|
||||
TEST_NUMERIC_LIMITS(const volatile long)
|
||||
|
||||
// long long
|
||||
TEST_NUMERIC_LIMITS(long long)
|
||||
TEST_NUMERIC_LIMITS(const long long)
|
||||
TEST_NUMERIC_LIMITS(volatile long long)
|
||||
TEST_NUMERIC_LIMITS(const volatile long long)
|
||||
|
||||
// unsigned short
|
||||
TEST_NUMERIC_LIMITS(unsigned short)
|
||||
TEST_NUMERIC_LIMITS(const unsigned short)
|
||||
TEST_NUMERIC_LIMITS(volatile unsigned short)
|
||||
TEST_NUMERIC_LIMITS(const volatile unsigned short)
|
||||
|
||||
// unsigned int
|
||||
TEST_NUMERIC_LIMITS(unsigned int)
|
||||
TEST_NUMERIC_LIMITS(const unsigned int)
|
||||
TEST_NUMERIC_LIMITS(volatile unsigned int)
|
||||
TEST_NUMERIC_LIMITS(const volatile unsigned int)
|
||||
|
||||
// unsigned long
|
||||
TEST_NUMERIC_LIMITS(unsigned long)
|
||||
TEST_NUMERIC_LIMITS(const unsigned long)
|
||||
TEST_NUMERIC_LIMITS(volatile unsigned long)
|
||||
TEST_NUMERIC_LIMITS(const volatile unsigned long)
|
||||
|
||||
// unsigned long long
|
||||
TEST_NUMERIC_LIMITS(unsigned long long)
|
||||
TEST_NUMERIC_LIMITS(const unsigned long long)
|
||||
TEST_NUMERIC_LIMITS(volatile unsigned long long)
|
||||
TEST_NUMERIC_LIMITS(const volatile unsigned long long)
|
||||
|
||||
// float
|
||||
TEST_NUMERIC_LIMITS(float)
|
||||
TEST_NUMERIC_LIMITS(const float)
|
||||
TEST_NUMERIC_LIMITS(volatile float)
|
||||
TEST_NUMERIC_LIMITS(const volatile float)
|
||||
|
||||
// double
|
||||
TEST_NUMERIC_LIMITS(double)
|
||||
TEST_NUMERIC_LIMITS(const double)
|
||||
TEST_NUMERIC_LIMITS(volatile double)
|
||||
TEST_NUMERIC_LIMITS(const volatile double)
|
||||
|
||||
// long double
|
||||
TEST_NUMERIC_LIMITS(long double)
|
||||
TEST_NUMERIC_LIMITS(const long double)
|
||||
TEST_NUMERIC_LIMITS(volatile long double)
|
||||
TEST_NUMERIC_LIMITS(const volatile long double)
|
||||
|
||||
// other
|
||||
TEST_NUMERIC_LIMITS(other)
|
||||
TEST_NUMERIC_LIMITS(const other)
|
||||
TEST_NUMERIC_LIMITS(volatile other)
|
||||
TEST_NUMERIC_LIMITS(const volatile other)
|
||||
}
|
@ -31,6 +31,9 @@
|
||||
#include <locale>
|
||||
#include <cassert>
|
||||
|
||||
template <class _Tp>
|
||||
void test(const _Tp &) {}
|
||||
|
||||
int main()
|
||||
{
|
||||
assert(std::ctype_base::space);
|
||||
@ -54,4 +57,17 @@ int main()
|
||||
& std::ctype_base::xdigit) == 0);
|
||||
assert(std::ctype_base::alnum == (std::ctype_base::alpha | std::ctype_base::digit));
|
||||
assert(std::ctype_base::graph == (std::ctype_base::alnum | std::ctype_base::punct));
|
||||
|
||||
test(std::ctype_base::space);
|
||||
test(std::ctype_base::print);
|
||||
test(std::ctype_base::cntrl);
|
||||
test(std::ctype_base::upper);
|
||||
test(std::ctype_base::lower);
|
||||
test(std::ctype_base::alpha);
|
||||
test(std::ctype_base::digit);
|
||||
test(std::ctype_base::punct);
|
||||
test(std::ctype_base::xdigit);
|
||||
test(std::ctype_base::blank);
|
||||
test(std::ctype_base::alnum);
|
||||
test(std::ctype_base::graph);
|
||||
}
|
||||
|
@ -17,10 +17,14 @@
|
||||
// public:
|
||||
// typedef _CharT char_type;
|
||||
// typedef basic_string<char_type> string_type;
|
||||
// static const bool intl = International;
|
||||
|
||||
#include <locale>
|
||||
#include <type_traits>
|
||||
|
||||
template <class _Tp>
|
||||
void test(const _Tp &) {}
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::locale::facet, std::moneypunct<char> >::value), "");
|
||||
@ -31,4 +35,9 @@ int main()
|
||||
static_assert((std::is_same<std::moneypunct<wchar_t>::char_type, wchar_t>::value), "");
|
||||
static_assert((std::is_same<std::moneypunct<char>::string_type, std::string>::value), "");
|
||||
static_assert((std::is_same<std::moneypunct<wchar_t>::string_type, std::wstring>::value), "");
|
||||
|
||||
test(std::moneypunct<char, false>::intl);
|
||||
test(std::moneypunct<char, true>::intl);
|
||||
test(std::moneypunct<wchar_t, false>::intl);
|
||||
test(std::moneypunct<wchar_t, true>::intl);
|
||||
}
|
||||
|
@ -15,6 +15,10 @@
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class _Tp>
|
||||
void test(const _Tp &) {}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_same<std::locale::category, int>::value), "");
|
||||
@ -38,4 +42,13 @@ int main()
|
||||
| std::locale::time
|
||||
| std::locale::messages)
|
||||
== std::locale::all);
|
||||
|
||||
test(std::locale::none);
|
||||
test(std::locale::collate);
|
||||
test(std::locale::ctype);
|
||||
test(std::locale::monetary);
|
||||
test(std::locale::numeric);
|
||||
test(std::locale::time);
|
||||
test(std::locale::messages);
|
||||
test(std::locale::all);
|
||||
}
|
||||
|
@ -26,6 +26,9 @@
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class _Tp>
|
||||
void where(const _Tp &) {}
|
||||
|
||||
void
|
||||
test1()
|
||||
{
|
||||
@ -34,6 +37,8 @@ test1()
|
||||
static_assert((E::used_block == 23), "");
|
||||
/*static_*/assert((E::min() == 0)/*, ""*/);
|
||||
/*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
|
||||
where(E::block_size);
|
||||
where(E::used_block);
|
||||
}
|
||||
|
||||
void
|
||||
@ -44,6 +49,8 @@ test2()
|
||||
static_assert((E::used_block == 11), "");
|
||||
/*static_*/assert((E::min() == 0)/*, ""*/);
|
||||
/*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
|
||||
where(E::block_size);
|
||||
where(E::used_block);
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -25,6 +25,9 @@
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class _Tp>
|
||||
void where(const _Tp &) {}
|
||||
|
||||
void
|
||||
test1()
|
||||
{
|
||||
@ -32,6 +35,7 @@ test1()
|
||||
static_assert(E::table_size == 256, "");
|
||||
/*static_*/assert((E::min() == 1)/*, ""*/);
|
||||
/*static_*/assert((E::max() == 2147483646)/*, ""*/);
|
||||
where(E::table_size);
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -25,6 +25,9 @@
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class _Tp>
|
||||
void where(const _Tp &) {}
|
||||
|
||||
template <class T, T a, T c, T m>
|
||||
void
|
||||
test1()
|
||||
@ -37,6 +40,10 @@ test1()
|
||||
/*static_*/assert((LCE::min() == (c == 0u ? 1u: 0u))/*, ""*/);
|
||||
/*static_*/assert((LCE::max() == result_type(m - 1u))/*, ""*/);
|
||||
static_assert((LCE::default_seed == 1), "");
|
||||
where(LCE::multiplier);
|
||||
where(LCE::increment);
|
||||
where(LCE::modulus);
|
||||
where(LCE::default_seed);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
@ -40,6 +40,9 @@
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class _Tp>
|
||||
void where(const _Tp &) {}
|
||||
|
||||
void
|
||||
test1()
|
||||
{
|
||||
@ -60,6 +63,20 @@ test1()
|
||||
/*static_*/assert((E::min() == 0)/*, ""*/);
|
||||
/*static_*/assert((E::max() == 0xFFFFFFFF)/*, ""*/);
|
||||
static_assert((E::default_seed == 5489u), "");
|
||||
where(E::word_size);
|
||||
where(E::state_size);
|
||||
where(E::shift_size);
|
||||
where(E::mask_bits);
|
||||
where(E::xor_mask);
|
||||
where(E::tempering_u);
|
||||
where(E::tempering_d);
|
||||
where(E::tempering_s);
|
||||
where(E::tempering_b);
|
||||
where(E::tempering_t);
|
||||
where(E::tempering_c);
|
||||
where(E::tempering_l);
|
||||
where(E::initialization_multiplier);
|
||||
where(E::default_seed);
|
||||
}
|
||||
|
||||
void
|
||||
@ -82,6 +99,20 @@ test2()
|
||||
/*static_*/assert((E::min() == 0)/*, ""*/);
|
||||
/*static_*/assert((E::max() == 0xFFFFFFFFFFFFFFFFull)/*, ""*/);
|
||||
static_assert((E::default_seed == 5489u), "");
|
||||
where(E::word_size);
|
||||
where(E::state_size);
|
||||
where(E::shift_size);
|
||||
where(E::mask_bits);
|
||||
where(E::xor_mask);
|
||||
where(E::tempering_u);
|
||||
where(E::tempering_d);
|
||||
where(E::tempering_s);
|
||||
where(E::tempering_b);
|
||||
where(E::tempering_t);
|
||||
where(E::tempering_c);
|
||||
where(E::tempering_l);
|
||||
where(E::initialization_multiplier);
|
||||
where(E::default_seed);
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -28,6 +28,9 @@
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class _Tp>
|
||||
void where(const _Tp &) {}
|
||||
|
||||
void
|
||||
test1()
|
||||
{
|
||||
@ -38,6 +41,10 @@ test1()
|
||||
/*static_*/assert((E::min() == 0)/*, ""*/);
|
||||
/*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
|
||||
static_assert((E::default_seed == 19780503u), "");
|
||||
where(E::word_size);
|
||||
where(E::short_lag);
|
||||
where(E::long_lag);
|
||||
where(E::default_seed);
|
||||
}
|
||||
|
||||
void
|
||||
@ -50,6 +57,10 @@ test2()
|
||||
/*static_*/assert((E::min() == 0)/*, ""*/);
|
||||
/*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
|
||||
static_assert((E::default_seed == 19780503u), "");
|
||||
where(E::word_size);
|
||||
where(E::short_lag);
|
||||
where(E::long_lag);
|
||||
where(E::default_seed);
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -28,6 +28,9 @@
|
||||
#include <regex>
|
||||
#include <type_traits>
|
||||
|
||||
template <class _Tp>
|
||||
void where(const _Tp &) {}
|
||||
|
||||
template <class CharT>
|
||||
void
|
||||
test()
|
||||
@ -43,6 +46,16 @@ test()
|
||||
static_assert((BR::awk == std::regex_constants::awk), "");
|
||||
static_assert((BR::grep == std::regex_constants::grep), "");
|
||||
static_assert((BR::egrep == std::regex_constants::egrep), "");
|
||||
where(BR::icase);
|
||||
where(BR::nosubs);
|
||||
where(BR::optimize);
|
||||
where(BR::collate);
|
||||
where(BR::ECMAScript);
|
||||
where(BR::basic);
|
||||
where(BR::extended);
|
||||
where(BR::awk);
|
||||
where(BR::grep);
|
||||
where(BR::egrep);
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -15,6 +15,9 @@
|
||||
|
||||
#include <chrono>
|
||||
|
||||
template <class _Tp>
|
||||
void test(const _Tp &) {}
|
||||
|
||||
int main()
|
||||
{
|
||||
typedef std::chrono::high_resolution_clock C;
|
||||
@ -22,4 +25,5 @@ int main()
|
||||
static_assert((std::is_same<C::period, C::duration::period>::value), "");
|
||||
static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
|
||||
static_assert(C::is_steady || !C::is_steady, "");
|
||||
test(std::chrono::high_resolution_clock::is_steady);
|
||||
}
|
||||
|
@ -15,6 +15,9 @@
|
||||
|
||||
#include <chrono>
|
||||
|
||||
template <class _Tp>
|
||||
void test(const _Tp &) {}
|
||||
|
||||
int main()
|
||||
{
|
||||
typedef std::chrono::steady_clock C;
|
||||
@ -22,4 +25,5 @@ int main()
|
||||
static_assert((std::is_same<C::period, C::duration::period>::value), "");
|
||||
static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
|
||||
static_assert(C::is_steady, "");
|
||||
test(std::chrono::steady_clock::is_steady);
|
||||
}
|
||||
|
@ -15,6 +15,9 @@
|
||||
|
||||
#include <chrono>
|
||||
|
||||
template <class _Tp>
|
||||
void test(const _Tp &) {}
|
||||
|
||||
int main()
|
||||
{
|
||||
typedef std::chrono::system_clock C;
|
||||
@ -23,4 +26,5 @@ int main()
|
||||
static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
|
||||
static_assert((std::is_same<C::time_point::clock, C>::value), "");
|
||||
static_assert((C::is_steady || !C::is_steady), "");
|
||||
test(std::chrono::system_clock::is_steady);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user