PR libstdc++/3035 and PR libstdc++/3036

2001-06-04  Kenny Simpson <theonetruekenny@yahoo.com>
            Phil Edwards  <pme@sources.redhat.com>

	PR libstdc++/3035 and PR libstdc++/3036
	* include/bits/stl_pair.h:  Fix pair ctor and make_pair according
	to LWG DR 181 and 265.

Co-Authored-By: Phil Edwards <pme@gcc.gnu.org>

From-SVN: r42865
This commit is contained in:
Kenny Simpson 2001-06-04 18:04:52 +00:00 committed by Phil Edwards
parent 0631e0bfb7
commit 31990cd54c
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2001-06-04 Kenny Simpson <theonetruekenny@yahoo.com>
Phil Edwards <pme@sources.redhat.com>
PR libstdc++/3035 and PR libstdc++/3036
* include/bits/stl_pair.h: Fix pair ctor and make_pair according
to LWG DR 181 and 265.
2001-06-04 Phil Edwards <pme@sources.redhat.com>
PR libstdc++/3034

View File

@ -41,7 +41,12 @@ struct pair {
_T1 first;
_T2 second;
#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
//265. std::pair::pair() effects overly restrictive
pair() : first(), second() {}
#else
pair() : first(_T1()), second(_T2()) {}
#endif
pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {}
template <class _U1, class _U2>
@ -84,7 +89,7 @@ inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) {
template <class _T1, class _T2>
#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
//181. make_pair() unintended behavior
inline pair<_T1, _T2> make_pair(const _T1 __x, const _T2 __y)
inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y)
#else
inline pair<_T1, _T2> make_pair(const _T1& __x, const _T2& __y)
#endif