[v3] libstdc++/54376

Paolo Carlini paolo.carlini@oracle.com
Sun Aug 26 14:31:00 GMT 2012


Hi,

thus, with many thanks to Marc, this is what I'm finishing testing on 
x86_64-linux multilib and I mean to commit to mainline later today 
(soon, 4_7-branch too).

Paolo.

////////////////////////
-------------- next part --------------
2012-08-26  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.
-------------- next part --------------
Index: include/bits/random.h
===================================================================
--- include/bits/random.h	(revision 190684)
+++ include/bits/random.h	(working copy)
@@ -2332,12 +2332,11 @@
        *        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
@@ -2525,12 +2524,11 @@
        *        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
@@ -2690,11 +2688,10 @@
        *        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
@@ -3043,13 +3040,12 @@
        *        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
@@ -3217,12 +3213,11 @@
        *        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
@@ -3593,10 +3588,9 @@
        *        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
@@ -3950,11 +3944,10 @@
        *        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
@@ -4134,14 +4127,13 @@
 	*        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
 
       /**
Index: testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;
Index: testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc
===================================================================
--- testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
+++ testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc	(revision 0)
@@ -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>;


More information about the Libstdc++ mailing list