From ce9555cb8273fc011d81d7bb2bb54da020b95b16 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 12 Oct 2010 18:38:42 +0000 Subject: [PATCH] random.h (discrete_distribution<>::param_type): Disable move operations. 2010-10-12 Paolo Carlini * include/bits/random.h (discrete_distribution<>::param_type): Disable move operations. (piecewise_constant_distribution<>::param_type): Likewise. (piecewise_linear_distribution<>::param_type): Likewise. * include/bits/random.h (discrete_distribution<>::param_type:: param_type()): Simplify, don't use _M_initialize. (piecewise_constant_distribution<>::param_type::param_type()): Likewise. (piecewise_linear_distribution<>::param_type::param_type()): Likewise. From-SVN: r165391 --- libstdc++-v3/ChangeLog | 14 ++++++++++++++ libstdc++-v3/include/bits/random.h | 24 ++++++++++++++++++------ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b6bd2ef998d..29413e77125 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,17 @@ +2010-10-12 Paolo Carlini + + * include/bits/random.h (discrete_distribution<>::param_type): + Disable move operations. + (piecewise_constant_distribution<>::param_type): Likewise. + (piecewise_linear_distribution<>::param_type): Likewise. + + * include/bits/random.h (discrete_distribution<>::param_type:: + param_type()): Simplify, don't use _M_initialize. + (piecewise_constant_distribution<>::param_type::param_type()): + Likewise. + (piecewise_linear_distribution<>::param_type::param_type()): + Likewise. + 2010-10-12 Paolo Carlini * include/bits/random.tcc (piecewise_linear_distribution<>:: diff --git a/libstdc++-v3/include/bits/random.h b/libstdc++-v3/include/bits/random.h index 4c3ebe2fc65..2477d57a9e1 100644 --- a/libstdc++-v3/include/bits/random.h +++ b/libstdc++-v3/include/bits/random.h @@ -4697,8 +4697,8 @@ namespace std friend class discrete_distribution<_IntType>; param_type() - : _M_prob(), _M_cp() - { _M_initialize(); } + : _M_prob(1, 1.0), _M_cp() + { } template param_type(_InputIterator __wbegin, @@ -4714,6 +4714,10 @@ namespace std param_type(size_t __nw, double __xmin, double __xmax, _Func __fw); + // See: http://cpp-next.com/archive/2010/10/implicit-move-must-go/ + param_type(const param_type&) = default; + param_type& operator=(const param_type&) = default; + std::vector probabilities() const { return _M_prob; } @@ -4889,8 +4893,8 @@ namespace std friend class piecewise_constant_distribution<_RealType>; param_type() - : _M_int(), _M_den(), _M_cp() - { _M_initialize(); } + : _M_int(2), _M_den(1, 1.0), _M_cp() + { _M_int[1] = _RealType(1); } template param_type(_InputIteratorB __bfirst, @@ -4904,6 +4908,10 @@ namespace std param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw); + // See: http://cpp-next.com/archive/2010/10/implicit-move-must-go/ + param_type(const param_type&) = default; + param_type& operator=(const param_type&) = default; + std::vector<_RealType> intervals() const { return _M_int; } @@ -5097,8 +5105,8 @@ namespace std friend class piecewise_linear_distribution<_RealType>; param_type() - : _M_int(), _M_den(), _M_cp(), _M_m() - { _M_initialize(); } + : _M_int(2), _M_den(2, 1.0), _M_cp(), _M_m() + { _M_int[1] = _RealType(1); } template param_type(_InputIteratorB __bfirst, @@ -5112,6 +5120,10 @@ namespace std param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw); + // See: http://cpp-next.com/archive/2010/10/implicit-move-must-go/ + param_type(const param_type&) = default; + param_type& operator=(const param_type&) = default; + std::vector<_RealType> intervals() const { return _M_int; }