OSDN Git Service

2012-08-26 Marc Glisse <marc.glisse@inria.fr>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Sep 2012 09:27:10 +0000 (09:27 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Sep 2012 09:27:10 +0000 (09:27 +0000)
    Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/54376
* include/bits/random.h (lognormal_distribution<>::operator==,
gamma_distribution<>::operator==,
chi_squared_distribution<>::operator==,
fisher_f_distribution<>::operator==,
student_t_distribution<>::operator==,
binomial_distribution<>::operator==,
negative_binomial_distribution<>::operator==,
poisson_distribution<>::operator==): Change inline friend definition
to non-template.
* testsuite/26_numerics/random/binomial_distribution/requirements/
explicit_instantiation/1.cc: New.
* testsuite/26_numerics/random/cauchy_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/chi_squared_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/discrete_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/exponential_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/extreme_value_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/fisher_f_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/gamma_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/geometric_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/lognormal_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/negative_binomial_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/normal_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/piecewise_constant_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/piecewise_linear_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/poisson_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/student_t_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/uniform_int_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/uniform_real_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/weibull_distribution/requirements/
explicit_instantiation/1.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@191016 138bc75d-0d04-0410-961f-82ee72b054a4

21 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/random.h
libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc [new file with mode: 0644]

index 0541184..1e82730 100644 (file)
@@ -1,3 +1,55 @@
+2012-09-06  Marc Glisse  <marc.glisse@inria.fr>
+           Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/54376
+       * include/bits/random.h (lognormal_distribution<>::operator==,
+       gamma_distribution<>::operator==,
+       chi_squared_distribution<>::operator==,
+       fisher_f_distribution<>::operator==,
+       student_t_distribution<>::operator==,
+       binomial_distribution<>::operator==,
+       negative_binomial_distribution<>::operator==,
+       poisson_distribution<>::operator==): Change inline friend definition
+       to non-template.
+       * testsuite/26_numerics/random/binomial_distribution/requirements/
+       explicit_instantiation/1.cc: New.
+       * testsuite/26_numerics/random/cauchy_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/chi_squared_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/discrete_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/exponential_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/extreme_value_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/fisher_f_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/gamma_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/geometric_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/lognormal_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/negative_binomial_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/normal_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/piecewise_constant_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/piecewise_linear_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/poisson_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/student_t_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/uniform_int_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/uniform_real_distribution/
+       requirements/explicit_instantiation/1.cc: Likewise.
+       * testsuite/26_numerics/random/weibull_distribution/requirements/
+       explicit_instantiation/1.cc: Likewise.
+
 2012-08-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
        * testsuite/30_threads/async/54297.cc: Add dg-require-nanosleep.
index 8f6bf4f..aa4ce3e 100644 (file)
@@ -2274,12 +2274,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        the same parameters and the sequences that would
        *        be generated are equal.
        */
-      template<typename _RealType1>
-        friend bool
-        operator==(const std::lognormal_distribution<_RealType1>& __d1,
-                  const std::lognormal_distribution<_RealType1>& __d2)
-        { return (__d1.param() == __d2.param()
-                 && __d1._M_nd == __d2._M_nd); }
+      friend bool
+      operator==(const lognormal_distribution& __d1,
+                const lognormal_distribution& __d2)
+      { return (__d1.param() == __d2.param()
+               && __d1._M_nd == __d2._M_nd); }
 
       /**
        * @brief Inserts a %lognormal_distribution random number distribution
@@ -2467,12 +2466,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        parameters and the sequences that would be generated
        *        are equal.
        */
-      template<typename _RealType1>
-        friend bool
-        operator==(const std::gamma_distribution<_RealType1>& __d1,
-                  const std::gamma_distribution<_RealType1>& __d2)
-        { return (__d1.param() == __d2.param()
-                 && __d1._M_nd == __d2._M_nd); }
+      friend bool
+      operator==(const gamma_distribution& __d1,
+                const gamma_distribution& __d2)
+      { return (__d1.param() == __d2.param()
+               && __d1._M_nd == __d2._M_nd); }
 
       /**
        * @brief Inserts a %gamma_distribution random number distribution
@@ -2632,11 +2630,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        the same parameters and the sequences that would be
        *        generated are equal.
        */
-      template<typename _RealType1>
-        friend bool
-        operator==(const std::chi_squared_distribution<_RealType1>& __d1,
-                  const std::chi_squared_distribution<_RealType1>& __d2)
-        { return __d1.param() == __d2.param() && __d1._M_gd == __d2._M_gd; }
+      friend bool
+      operator==(const chi_squared_distribution& __d1,
+                const chi_squared_distribution& __d2)
+      { return __d1.param() == __d2.param() && __d1._M_gd == __d2._M_gd; }
 
       /**
        * @brief Inserts a %chi_squared_distribution random number distribution
@@ -2985,13 +2982,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        the same parameters and the sequences that would
        *        be generated are equal.
        */
-      template<typename _RealType1>
-        friend bool
-        operator==(const std::fisher_f_distribution<_RealType1>& __d1,
-                  const std::fisher_f_distribution<_RealType1>& __d2)
-        { return (__d1.param() == __d2.param()
-                 && __d1._M_gd_x == __d2._M_gd_x
-                 && __d1._M_gd_y == __d2._M_gd_y); }
+      friend bool
+      operator==(const fisher_f_distribution& __d1,
+                const fisher_f_distribution& __d2)
+      { return (__d1.param() == __d2.param()
+               && __d1._M_gd_x == __d2._M_gd_x
+               && __d1._M_gd_y == __d2._M_gd_y); }
 
       /**
        * @brief Inserts a %fisher_f_distribution random number distribution
@@ -3159,12 +3155,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        the same parameters and the sequences that would
        *        be generated are equal.
        */
-      template<typename _RealType1>
-        friend bool
-        operator==(const std::student_t_distribution<_RealType1>& __d1,
-                  const std::student_t_distribution<_RealType1>& __d2)
-        { return (__d1.param() == __d2.param()
-                 && __d1._M_nd == __d2._M_nd && __d1._M_gd == __d2._M_gd); }
+      friend bool
+      operator==(const student_t_distribution& __d1,
+                const student_t_distribution& __d2)
+      { return (__d1.param() == __d2.param()
+               && __d1._M_nd == __d2._M_nd && __d1._M_gd == __d2._M_gd); }
 
       /**
        * @brief Inserts a %student_t_distribution random number distribution
@@ -3535,10 +3530,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        the same parameters and the sequences that would
        *        be generated are equal.
        */
-      template<typename _IntType1>
        friend bool
-        operator==(const std::binomial_distribution<_IntType1>& __d1,
-                  const std::binomial_distribution<_IntType1>& __d2)
+        operator==(const binomial_distribution& __d1,
+                  const binomial_distribution& __d2)
 #ifdef _GLIBCXX_USE_C99_MATH_TR1
        { return __d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd; }
 #else
@@ -3892,11 +3886,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        the same parameters and the sequences that would be
        *        generated are equal.
        */
-      template<typename _IntType1>
-        friend bool
-        operator==(const std::negative_binomial_distribution<_IntType1>& __d1,
-                  const std::negative_binomial_distribution<_IntType1>& __d2)
-        { return __d1.param() == __d2.param() && __d1._M_gd == __d2._M_gd; }
+      friend bool
+      operator==(const negative_binomial_distribution& __d1,
+                const negative_binomial_distribution& __d2)
+      { return __d1.param() == __d2.param() && __d1._M_gd == __d2._M_gd; }
 
       /**
        * @brief Inserts a %negative_binomial_distribution random
@@ -4076,14 +4069,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *        parameters and the sequences that would be generated
        *        are equal.
        */
-      template<typename _IntType1>
-        friend bool
-        operator==(const std::poisson_distribution<_IntType1>& __d1,
-                  const std::poisson_distribution<_IntType1>& __d2)
+      friend bool
+      operator==(const poisson_distribution& __d1,
+                const poisson_distribution& __d2)
 #ifdef _GLIBCXX_USE_C99_MATH_TR1
-        { return __d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd; }
+      { return __d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd; }
 #else
-        { return __d1.param() == __d2.param(); }
+      { return __d1.param() == __d2.param(); }
 #endif
 
       /**
diff --git a/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..9bdad10
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::binomial_distribution<int>;
+template class std::binomial_distribution<long>;
+template class std::binomial_distribution<unsigned int>;
+template class std::binomial_distribution<unsigned long>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..ad33135
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::cauchy_distribution<float>;
+template class std::cauchy_distribution<double>;
+template class std::cauchy_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..626d538
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::chi_squared_distribution<float>;
+template class std::chi_squared_distribution<double>;
+template class std::chi_squared_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..2041218
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::discrete_distribution<int>;
+template class std::discrete_distribution<long>;
+template class std::discrete_distribution<unsigned int>;
+template class std::discrete_distribution<unsigned long>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..5addabc
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::exponential_distribution<float>;
+template class std::exponential_distribution<double>;
+template class std::exponential_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..02125e9
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::extreme_value_distribution<float>;
+template class std::extreme_value_distribution<double>;
+template class std::extreme_value_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..f6c62e9
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::fisher_f_distribution<float>;
+template class std::fisher_f_distribution<double>;
+template class std::fisher_f_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..c6ad617
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::gamma_distribution<float>;
+template class std::gamma_distribution<double>;
+template class std::gamma_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..7a8e31d
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::geometric_distribution<int>;
+template class std::geometric_distribution<long>;
+template class std::geometric_distribution<unsigned int>;
+template class std::geometric_distribution<unsigned long>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..20ba458
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::lognormal_distribution<float>;
+template class std::lognormal_distribution<double>;
+template class std::lognormal_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..36f4873
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::negative_binomial_distribution<int>;
+template class std::negative_binomial_distribution<long>;
+template class std::negative_binomial_distribution<unsigned int>;
+template class std::negative_binomial_distribution<unsigned long>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..9fe18ba
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::normal_distribution<float>;
+template class std::normal_distribution<double>;
+template class std::normal_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..e2a04d7
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::piecewise_constant_distribution<float>;
+template class std::piecewise_constant_distribution<double>;
+template class std::piecewise_constant_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..d3b52a3
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::piecewise_linear_distribution<float>;
+template class std::piecewise_linear_distribution<double>;
+template class std::piecewise_linear_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..2f762a2
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::poisson_distribution<int>;
+template class std::poisson_distribution<long>;
+template class std::poisson_distribution<unsigned int>;
+template class std::poisson_distribution<unsigned long>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..a11280b
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::student_t_distribution<float>;
+template class std::student_t_distribution<double>;
+template class std::student_t_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..b985118
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::uniform_int_distribution<int>;
+template class std::uniform_int_distribution<long>;
+template class std::uniform_int_distribution<unsigned int>;
+template class std::uniform_int_distribution<unsigned long>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..011fa34
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::uniform_real_distribution<float>;
+template class std::uniform_real_distribution<double>;
+template class std::uniform_real_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..8e268ef
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+template class std::weibull_distribution<float>;
+template class std::weibull_distribution<double>;
+template class std::weibull_distribution<long double>;