re PR libstdc++/37986 (std::tr1::variate_generator does not conform to TR1.)
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/37986 * include/tr1_impl/random (struct _Adaptor): Use remove_pointer and remove_reference on _Engine. * testsuite/tr1/5_numerical_facilities/random/variate_generator/ 37986.cc: New. From-SVN: r141769
This commit is contained in:
parent
9b77c3a2ba
commit
285743c92b
@ -1,3 +1,11 @@
|
||||
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR libstdc++/37986
|
||||
* include/tr1_impl/random (struct _Adaptor): Use remove_pointer
|
||||
and remove_reference on _Engine.
|
||||
* testsuite/tr1/5_numerical_facilities/random/variate_generator/
|
||||
37986.cc: New.
|
||||
|
||||
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* testsuite/ext/ext_pointer/1_neg.cc: Adjust dg-error line numbers.
|
||||
|
@ -79,7 +79,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
|
||||
template<typename _Engine, typename _Distribution>
|
||||
struct _Adaptor
|
||||
{
|
||||
typedef typename _Engine::result_type _Engine_result_type;
|
||||
typedef typename remove_reference<
|
||||
typename remove_pointer<_Engine>::type>::type _BEngine;
|
||||
|
||||
typedef typename _BEngine::result_type _Engine_result_type;
|
||||
typedef typename _Distribution::input_type result_type;
|
||||
|
||||
public:
|
||||
|
@ -0,0 +1,45 @@
|
||||
// { dg-do compile }
|
||||
//
|
||||
// Copyright (C) 2008 Free 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// 5.1.3 class template variate_generator
|
||||
|
||||
#include <tr1/random>
|
||||
|
||||
// libtsdc++/37986
|
||||
void test01()
|
||||
{
|
||||
std::tr1::mt19937 mt;
|
||||
std::tr1::uniform_real<double> dist;
|
||||
|
||||
std::tr1::variate_generator<
|
||||
std::tr1::mt19937,
|
||||
std::tr1::uniform_real<double>
|
||||
> g1(mt, dist);
|
||||
|
||||
std::tr1::variate_generator<
|
||||
std::tr1::mt19937&,
|
||||
std::tr1::uniform_real<double>
|
||||
> g2(mt, dist);
|
||||
|
||||
std::tr1::variate_generator<
|
||||
std::tr1::mt19937*,
|
||||
std::tr1::uniform_real<double>
|
||||
> g3(&mt, dist);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user