diff options
Diffstat (limited to 'libstdc++-v3/testsuite')
35 files changed, 408 insertions, 85 deletions
diff --git a/libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc index 46c5af0f2a4..42096c0fd34 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.2.1 Class template bernoulli_distribution [rand.dist.bern.bernoulli] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.3.1 Class bernoulli_distribution [rand.dist.bern.bernoulli] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -35,8 +37,15 @@ test01() VERIFY( u.max() == std::numeric_limits<bool>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::bernoulli_distribution>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc index 74a7a786064..6cf82f1b86c 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.2.2 Class template binomial_distribution [rand.dist.bern.bin] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.3.2 Class template binomial_distribution [rand.dist.bern.bin] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -36,8 +38,15 @@ test01() VERIFY( u.max() == u.t() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::binomial_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc index 04bc15c5182..c1c71ce2ce7 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.4.4 Class template cauchy_distribution [rand.dist.norm.cauchy] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.5.4 Class template cauchy_distribution [rand.dist.norm.cauchy] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,15 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::cauchy_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc index df985c3e653..8ecf7c0ce4a 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.4.3 Class template chi_squared_distribution [rand.dist.norm.chisq] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.5.3 Class template chi_squared_distribution [rand.dist.norm.chisq] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -36,8 +38,15 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::chi_squared_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc index 6a82f46a686..0e837ed1046 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.5.1 Class template discrete_distribution [rand.dist.samp.discrete] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.6.1 Class template discrete_distribution [rand.dist.samp.discrete] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -35,8 +37,15 @@ test01() VERIFY( probablility[0] == 1.0 ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::discrete_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc index 00b1f003c61..7285bd351a3 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.3.2 Class template exponential_distribution [rand.dist.pois.exp] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.4.2 Class template exponential_distribution [rand.dist.pois.exp] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -36,8 +38,15 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::exponential_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc index db3dc19dbe4..f9187fc7586 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.3.5 Class template extreme_value_distribution [rand.dist.pois.extreme] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.4.5 Class template extreme_value_distribution [rand.dist.pois.extreme] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,15 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::extreme_value_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc index 16c2077b7da..3032adea816 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.4.5 Class template fisher_f_distribution [rand.dist.norm.f] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.5.5 Class template fisher_f_distribution [rand.dist.norm.f] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,15 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::fisher_f_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc index 8274d45d669..84d2bb73502 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.3.3 Class template gamma_distribution [rand.dist.pois.gamma] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.4.3 Class template gamma_distribution [rand.dist.pois.gamma] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,15 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::gamma_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc index 35221f313fe..d16a2f06db2 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.2.3 Class template geometric_distribution [rand.dist.bern.geo] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.3.3 Class template geometric_distribution [rand.dist.bern.geo] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -36,8 +38,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::geometric_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc index b6d57737cfa..5512905cf61 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.4.2 Class template lognormal_distribution [rand.dist.norm.lognormal] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.5.2 Class template lognormal_distribution [rand.dist.norm.lognormal] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::lognormal_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc index f6e2f1d7798..32847dfe699 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.2.4 Class template negative_binomial_distribution [rand.dist.bern.negbin] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.3.4 Class template negative_binomial_distribution [rand.dist.bern.negbin] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::negative_binomial_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc index 941927ba0b4..dd3e0d21655 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.4.1 Class template normal_distribution [rand.dist.norm.normal] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.5.1 Class template normal_distribution [rand.dist.norm.normal] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::normal_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc index 40eb9da422d..84507b45ae7 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.5.2 Class template piecewise_constant_distribution [rand.dist.samp.pconst] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.6.2 Class template piecewise_constant_distribution [rand.dist.samp.pconst] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -39,8 +41,16 @@ test01() VERIFY( density[0] == 1.0 ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::piecewise_constant_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc index 11fbc2c537e..e439adf2a3f 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.5.3 Class template piecewise_linear_distribution [rand.dist.samp.plinear] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.6.3 Class template piecewise_linear_distribution [rand.dist.samp.plinear] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -40,8 +42,16 @@ test01() VERIFY( density[1] == 1.0 ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::piecewise_linear_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc index 71d0ca0f048..c357581785e 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.3.1 Class template poisson_distribution [rand.dist.pois.poisson] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.4.1 Class template poisson_distribution [rand.dist.pois.poisson] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -36,8 +38,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::poisson_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc index 3524a45b9ff..06c7deef094 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.4.6 Class template student_t_distribution [rand.dist.norm.t] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.5.6 Class template student_t_distribution [rand.dist.norm.t] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -36,8 +38,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::student_t_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc index ccfbe26f3c0..8774e660e59 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc @@ -20,12 +20,14 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.1.1 Class template uniform_int_distribution [rand.dist.uni.int] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.2.1 Class template uniform_int_distribution [rand.dist.uni.int] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <limits> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,16 @@ test01() VERIFY( u.max() == std::numeric_limits<int>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::uniform_int_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc index 662f8981099..6a47a4dc473 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.1.1 Class template uniform_real_distribution [rand.dist.uni.real] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.2.2 Class template uniform_real_distribution [rand.dist.uni.real] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -36,8 +38,16 @@ test01() VERIFY( u.max() == 1.0 ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::uniform_real_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc b/libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc index 369805eaed9..96db58f2ca6 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc @@ -20,11 +20,13 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// 26.4.8.3.4 Class template weibull_distribution [rand.dist.pois.weibull] -// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] +// C++11 +// 26.5.8.4.4 Class template weibull_distribution [rand.dist.pois.weibull] +// 26.5.1.6 random number distribution requirements [rand.req.dist] #include <random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,8 +39,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } -int main() +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<std::weibull_distribution<>>(); +} + +int +main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc index 3b6ed697c72..76b5166caf5 100644 --- a/libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc @@ -22,6 +22,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -33,9 +34,16 @@ test01() VERIFY( u.max() == 1.0 ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::arcsine_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc index 375d6c538b3..9675a557a9a 100644 --- a/libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc @@ -23,6 +23,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -34,8 +35,15 @@ test01() VERIFY( u.max() == 1.0 ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::beta_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc index c4c9a9c0961..53022345aea 100644 --- a/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc @@ -22,6 +22,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -34,9 +35,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::hoyt_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc index 659db01dc76..d4078d4df37 100644 --- a/libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc @@ -25,6 +25,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,9 +38,16 @@ test01() VERIFY( u.max() == 1 ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::hypergeometric_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc index 6e06683c26e..cc11ccb2701 100644 --- a/libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc @@ -25,6 +25,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -38,9 +39,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::k_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc index 6d902785402..3d7db75524d 100644 --- a/libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc @@ -25,6 +25,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -38,9 +39,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::logistic_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc index 9bc6e2c41f8..ea473f2fca5 100644 --- a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc @@ -25,6 +25,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,9 +38,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::nakagami_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc index f691e13022b..c209a8d89dc 100644 --- a/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc @@ -23,6 +23,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -40,8 +41,15 @@ test01() VERIFY( u.max()[1] == std::numeric_limits<result_type::value_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::normal_mv_distribution<2>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc index d320a6be070..368d7da1910 100644 --- a/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc @@ -25,6 +25,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,9 +38,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::pareto_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc index 5a3b92787ce..1483f87000a 100644 --- a/libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc @@ -25,6 +25,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -37,9 +38,16 @@ test01() VERIFY( u.max() == std::numeric_limits<result_type>::max() ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::rice_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc index 8f33e3acdef..c7c6aba5936 100644 --- a/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc @@ -23,6 +23,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -35,8 +36,15 @@ test01() VERIFY( u.max() == 1.0 ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::triangular_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc index 7a7c04d6455..e15a12d79ae 100644 --- a/libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc @@ -23,6 +23,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -35,9 +36,16 @@ test01() __gnu_cxx::uniform_inside_sphere_distribution<5, float> u5; } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::uniform_inside_sphere_distribution<2>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc index 446893dd122..8aa81b328a2 100644 --- a/libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc @@ -24,6 +24,7 @@ // 26.5.1.6 Random number distribution requirements [rand.req.dist] #include <ext/random> +#include <testsuite_common_types.h> void test01() @@ -34,9 +35,16 @@ test01() __gnu_cxx::uniform_on_sphere_distribution<5, float> u5; } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::uniform_on_sphere_distribution<2>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc index 9ae700257c9..1a4784d49d9 100644 --- a/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc +++ b/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc @@ -23,6 +23,7 @@ #include <ext/random> #include <testsuite_hooks.h> +#include <testsuite_common_types.h> void test01() @@ -34,8 +35,15 @@ test01() VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi ); } +void +test02() +{ + __gnu_test::implicitly_default_constructible test; + test.operator()<__gnu_cxx::von_mises_distribution<>>(); +} + int main() { test01(); - return 0; + test02(); } diff --git a/libstdc++-v3/testsuite/util/testsuite_common_types.h b/libstdc++-v3/testsuite/util/testsuite_common_types.h index 1069a1a997b..2e977b57cf1 100644 --- a/libstdc++-v3/testsuite/util/testsuite_common_types.h +++ b/libstdc++-v3/testsuite/util/testsuite_common_types.h @@ -687,6 +687,26 @@ namespace __gnu_test }; #if __cplusplus >= 201103L + // Generator to test non-explicit default constructor. + struct implicitly_default_constructible + { + template<typename _Tp> + void + operator()() + { + struct _Concept + { + struct Aggregate { _Tp v; }; + + void __constraint() + { Aggregate __v __attribute__((unused)) = { }; } + }; + + void (_Concept::*__x)() __attribute__((unused)) + = &_Concept::__constraint; + } + }; + // Generator to test default constructor. struct constexpr_default_constructible { |