From f41e0f10464c060e928927c5272a360c31a48093 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sun, 7 Feb 2010 10:29:04 +0000 Subject: [PATCH] stl_pair.h (pair<>::pair(_U1&&, const _T2&), [...]): Revert to std::is_convertible, basing on DR 811. 2010-02-07 Paolo Carlini * include/bits/stl_pair.h (pair<>::pair(_U1&&, const _T2&), pair<>::pair(const _T1&, _U2&&), pair<>::pair(_U1&&, _U2&&)): Revert to std::is_convertible, basing on DR 811. From-SVN: r156570 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/bits/stl_pair.h | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 863d5513833..52ce8135448 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2010-02-07 Paolo Carlini + + * include/bits/stl_pair.h (pair<>::pair(_U1&&, const _T2&), + pair<>::pair(const _T1&, _U2&&), pair<>::pair(_U1&&, _U2&&)): + Revert to std::is_convertible, basing on DR 811. + 2010-02-06 Paolo Carlini PR libstdc++/42989 diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h index 9d7338bc55b..11d0d107f25 100644 --- a/libstdc++-v3/include/bits/stl_pair.h +++ b/libstdc++-v3/include/bits/stl_pair.h @@ -1,6 +1,6 @@ // Pair implementation -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -90,20 +90,20 @@ _GLIBCXX_BEGIN_NAMESPACE(std) #ifdef __GXX_EXPERIMENTAL_CXX0X__ // DR 811. template::value>::type> + std::enable_if::value>::type> pair(_U1&& __x, const _T2& __y) : first(std::forward<_U1>(__x)), second(__y) { } template::value>::type> + std::enable_if::value>::type> pair(const _T1& __x, _U2&& __y) : first(__x), second(std::forward<_U2>(__y)) { } template::value - && std::is_constructible<_T2, _U2&&>::value>::type> + std::enable_if::value + && std::is_convertible<_U2, _T2>::value>::type> pair(_U1&& __x, _U2&& __y) : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }