diff --git a/include/xo/randomgen/distribution_concept.hpp b/include/xo/randomgen/distribution_concept.hpp index 61c764e0..c2343255 100644 --- a/include/xo/randomgen/distribution_concept.hpp +++ b/include/xo/randomgen/distribution_concept.hpp @@ -24,12 +24,17 @@ namespace xo { // os << dist // is >> dist - } && std::copyable + } +#ifdef __clang__ + // std::copyable apparently not available in clang11 ? +#else + && std::copyable && std::copyable - && std::equality_comparable; + && std::equality_comparable +#endif + ; } /*namespace rng*/ } /*namespace xo*/ - /* end distribution_concept.hpp */ diff --git a/include/xo/randomgen/engine_concept.hpp b/include/xo/randomgen/engine_concept.hpp index 38b65cd7..2b3a2e53 100644 --- a/include/xo/randomgen/engine_concept.hpp +++ b/include/xo/randomgen/engine_concept.hpp @@ -7,6 +7,8 @@ namespace std { #ifdef __clang__ + +# if __clang_major__ <= 11 template < class T > concept integral = std::is_integral_v; @@ -31,8 +33,11 @@ namespace std { && requires { { G::min() } -> std::same_as>; { G::max() } -> std::same_as>; requires std::bool_constant<(G::min() < G::max())>::value; }; +# endif + #else /* uniform_random_bit_generator provided by gcc 12.3.2 */ + /* uniform_random_bit_generator provided by clang 16 */ #endif } /*namespace std*/