* [v3] Fix libstdc++/37986
@ 2008-11-11 15:06 Paolo Carlini
0 siblings, 0 replies; only message in thread
From: Paolo Carlini @ 2008-11-11 15:06 UTC (permalink / raw)
To: Gcc Patch List; +Cc: libstdc++
[-- Attachment #1: Type: text/plain, Size: 78 bytes --]
Hi,
tested x86_64-linux, committed to mainline.
Paolo.
///////////////////
[-- Attachment #2: CL_37986 --]
[-- Type: text/plain, Size: 256 bytes --]
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.
[-- Attachment #3: patch_37986 --]
[-- Type: text/plain, Size: 2653 bytes --]
Index: include/tr1_impl/random
===================================================================
*** include/tr1_impl/random (revision 141739)
--- include/tr1_impl/random (working copy)
*************** _GLIBCXX_BEGIN_NAMESPACE_TR1
*** 79,85 ****
template<typename _Engine, typename _Distribution>
struct _Adaptor
{
! typedef typename _Engine::result_type _Engine_result_type;
typedef typename _Distribution::input_type result_type;
public:
--- 79,88 ----
template<typename _Engine, typename _Distribution>
struct _Adaptor
{
! 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:
Index: testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc
===================================================================
*** testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc (revision 0)
--- testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc (revision 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);
+ }
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-11-11 14:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-11 15:06 [v3] Fix libstdc++/37986 Paolo Carlini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).