Commit d4cd08dd by Paolo Carlini Committed by Paolo Carlini

howto.html: Add entry for DR 253 [Ready].

2004-03-12  Paolo Carlini  <pcarlini@suse.de>

	* docs/html/ext/howto.html: Add entry for DR 253 [Ready].
	* include/bits/gslice_array.h: Add comment about DR 253.
	* include/bits/indirect_array.h: Likewise.
	* include/bits/mask_array.h: Likewise.
	* include/bits/slice_array.h: Likewise.

From-SVN: r79412
parent c973d557
2004-03-12 Paolo Carlini <pcarlini@suse.de>
* docs/html/ext/howto.html: Add entry for DR 253 [Ready].
* include/bits/gslice_array.h: Add comment about DR 253.
* include/bits/indirect_array.h: Likewise.
* include/bits/mask_array.h: Likewise.
* include/bits/slice_array.h: Likewise.
2004-03-12 Benjamin Kosnik <bkoz@redhat.com> 2004-03-12 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/20_util/allocator/14176.cc: New. * testsuite/20_util/allocator/14176.cc: New.
......
...@@ -412,6 +412,14 @@ ...@@ -412,6 +412,14 @@
<dd>This nested typdef was originally not specified. <dd>This nested typdef was originally not specified.
</dd> </dd>
<dt><a href="lwg-active.html#253">253</a>:
<em>valarray helper functions are almost entirely useless</em>
</dt>
<dd>Make the copy constructor and copy-assignment operator declarations
public in gslice_array, indirect_array, mask_array, slice_array; provide
definitions.
</dd>
<dt><a href="lwg-defects.html#265">265</a>: <dt><a href="lwg-defects.html#265">265</a>:
<em>std::pair::pair() effects overly restrictive</em> <em>std::pair::pair() effects overly restrictive</em>
</dt> </dt>
......
...@@ -61,11 +61,12 @@ namespace std { ...@@ -61,11 +61,12 @@ namespace std {
public: public:
typedef _Tp value_type; typedef _Tp value_type;
// this constructor needs to be implemented. // _GLIBCXX_RESOLVE_LIB_DEFECTS
// 253. valarray helper functions are almost entirely useless
/// Copy constructor. Both slices refer to the same underlying array. /// Copy constructor. Both slices refer to the same underlying array.
gslice_array(const gslice_array&); gslice_array(const gslice_array&);
// This operator must be public. See DR-253.
/// Assignment operator. Assigns slice elements to corresponding /// Assignment operator. Assigns slice elements to corresponding
/// elements of @a a. /// elements of @a a.
gslice_array& operator=(const gslice_array&); gslice_array& operator=(const gslice_array&);
...@@ -134,13 +135,13 @@ namespace std { ...@@ -134,13 +135,13 @@ namespace std {
inline inline
gslice_array<_Tp>::gslice_array(_Array<_Tp> __a, gslice_array<_Tp>::gslice_array(_Array<_Tp> __a,
const valarray<size_t>& __i) const valarray<size_t>& __i)
: _M_array(__a), _M_index(__i) {} : _M_array(__a), _M_index(__i) {}
template<typename _Tp> template<typename _Tp>
inline inline
gslice_array<_Tp>::gslice_array(const gslice_array<_Tp>& __a) gslice_array<_Tp>::gslice_array(const gslice_array<_Tp>& __a)
: _M_array(__a._M_array), _M_index(__a._M_index) {} : _M_array(__a._M_array), _M_index(__a._M_index) {}
template<typename _Tp> template<typename _Tp>
......
...@@ -63,11 +63,12 @@ namespace std ...@@ -63,11 +63,12 @@ namespace std
public: public:
typedef _Tp value_type; typedef _Tp value_type;
// this constructor needs to be implemented. // _GLIBCXX_RESOLVE_LIB_DEFECTS
// 253. valarray helper functions are almost entirely useless
/// Copy constructor. Both slices refer to the same underlying array. /// Copy constructor. Both slices refer to the same underlying array.
indirect_array(const indirect_array&); indirect_array(const indirect_array&);
// XXX: This is a proposed resolution for DR-253.
/// Assignment operator. Assigns elements to corresponding elements /// Assignment operator. Assigns elements to corresponding elements
/// of @a a. /// of @a a.
indirect_array& operator=(const indirect_array&); indirect_array& operator=(const indirect_array&);
...@@ -139,13 +140,13 @@ namespace std ...@@ -139,13 +140,13 @@ namespace std
template<typename _Tp> template<typename _Tp>
inline inline
indirect_array<_Tp>::indirect_array(const indirect_array<_Tp>& __a) indirect_array<_Tp>::indirect_array(const indirect_array<_Tp>& __a)
: _M_sz(__a._M_sz), _M_index(__a._M_index), _M_array(__a._M_array) {} : _M_sz(__a._M_sz), _M_index(__a._M_index), _M_array(__a._M_array) {}
template<typename _Tp> template<typename _Tp>
inline inline
indirect_array<_Tp>::indirect_array(_Array<_Tp> __a, size_t __s, indirect_array<_Tp>::indirect_array(_Array<_Tp> __a, size_t __s,
_Array<size_t> __i) _Array<size_t> __i)
: _M_sz(__s), _M_index(__i), _M_array(__a) {} : _M_sz(__s), _M_index(__i), _M_array(__a) {}
template<typename _Tp> template<typename _Tp>
inline indirect_array<_Tp>& inline indirect_array<_Tp>&
......
...@@ -63,11 +63,12 @@ namespace std { ...@@ -63,11 +63,12 @@ namespace std {
public: public:
typedef _Tp value_type; typedef _Tp value_type;
// this constructor needs to be implemented. // _GLIBCXX_RESOLVE_LIB_DEFECTS
// 253. valarray helper functions are almost entirely useless
/// Copy constructor. Both slices refer to the same underlying array. /// Copy constructor. Both slices refer to the same underlying array.
mask_array (const mask_array&); mask_array (const mask_array&);
// This operator must be public. See DR-253.
/// Assignment operator. Assigns elements to corresponding elements /// Assignment operator. Assigns elements to corresponding elements
/// of @a a. /// of @a a.
mask_array& operator=(const mask_array&); mask_array& operator=(const mask_array&);
...@@ -136,12 +137,12 @@ namespace std { ...@@ -136,12 +137,12 @@ namespace std {
template<typename _Tp> template<typename _Tp>
inline mask_array<_Tp>::mask_array(const mask_array<_Tp>& a) inline mask_array<_Tp>::mask_array(const mask_array<_Tp>& a)
: _M_sz(a._M_sz), _M_mask(a._M_mask), _M_array(a._M_array) {} : _M_sz(a._M_sz), _M_mask(a._M_mask), _M_array(a._M_array) {}
template<typename _Tp> template<typename _Tp>
inline inline
mask_array<_Tp>::mask_array(_Array<_Tp> __a, size_t __s, _Array<bool> __m) mask_array<_Tp>::mask_array(_Array<_Tp> __a, size_t __s, _Array<bool> __m)
: _M_sz(__s), _M_mask(__m), _M_array(__a) {} : _M_sz(__s), _M_mask(__m), _M_array(__a) {}
template<typename _Tp> template<typename _Tp>
inline mask_array<_Tp>& inline mask_array<_Tp>&
......
...@@ -123,11 +123,12 @@ namespace std ...@@ -123,11 +123,12 @@ namespace std
public: public:
typedef _Tp value_type; typedef _Tp value_type;
// This constructor is implemented since we need to return a value. // _GLIBCXX_RESOLVE_LIB_DEFECTS
// 253. valarray helper functions are almost entirely useless
/// Copy constructor. Both slices refer to the same underlying array. /// Copy constructor. Both slices refer to the same underlying array.
slice_array(const slice_array&); slice_array(const slice_array&);
// This operator must be public. See DR-253.
/// Assignment operator. Assigns slice elements to corresponding /// Assignment operator. Assigns slice elements to corresponding
/// elements of @a a. /// elements of @a a.
slice_array& operator=(const slice_array&); slice_array& operator=(const slice_array&);
...@@ -196,13 +197,13 @@ namespace std ...@@ -196,13 +197,13 @@ namespace std
template<typename _Tp> template<typename _Tp>
inline inline
slice_array<_Tp>::slice_array(_Array<_Tp> __a, const slice& __s) slice_array<_Tp>::slice_array(_Array<_Tp> __a, const slice& __s)
: _M_sz(__s.size()), _M_stride(__s.stride()), : _M_sz(__s.size()), _M_stride(__s.stride()),
_M_array(__a.begin() + __s.start()) {} _M_array(__a.begin() + __s.start()) {}
template<typename _Tp> template<typename _Tp>
inline inline
slice_array<_Tp>::slice_array(const slice_array<_Tp>& a) slice_array<_Tp>::slice_array(const slice_array<_Tp>& a)
: _M_sz(a._M_sz), _M_stride(a._M_stride), _M_array(a._M_array) {} : _M_sz(a._M_sz), _M_stride(a._M_stride), _M_array(a._M_array) {}
// template<typename _Tp> // template<typename _Tp>
// inline slice_array<_Tp>::~slice_array () {} // inline slice_array<_Tp>::~slice_array () {}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment