diff mbox series

libstdc++: Implement LWG 3557 change to convertible_to

Message ID 20210618151201.1703195-1-ppalka@redhat.com
State New
Headers show
Series libstdc++: Implement LWG 3557 change to convertible_to | expand

Commit Message

Patrick Palka June 18, 2021, 3:12 p.m. UTC
libstdc++-v3/ChangeLog:

	* include/std/concepts (convertible_to): Just use declval as per
	LWG 3557.
---
 libstdc++-v3/include/std/concepts | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Jonathan Wakely June 18, 2021, 3:19 p.m. UTC | #1
OK, thanks.

On Fri, 18 Jun 2021 at 16:13, Patrick Palka via Libstdc++
<libstdc++@gcc.gnu.org> wrote:
>
> libstdc++-v3/ChangeLog:
>
>         * include/std/concepts (convertible_to): Just use declval as per
>         LWG 3557.
> ---
>  libstdc++-v3/include/std/concepts | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/libstdc++-v3/include/std/concepts b/libstdc++-v3/include/std/concepts
> index 4490f534412..7f5421f1475 100644
> --- a/libstdc++-v3/include/std/concepts
> +++ b/libstdc++-v3/include/std/concepts
> @@ -70,9 +70,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// [concept.convertible], concept convertible_to
>    template<typename _From, typename _To>
>      concept convertible_to = is_convertible_v<_From, _To>
> -      && requires(add_rvalue_reference_t<_From> (&__f)()) {
> -         static_cast<_To>(__f());
> -      };
> +      && requires { static_cast<_To>(std::declval<_From>()); };
>
>    /// [concept.commonref], concept common_reference_with
>    template<typename _Tp, typename _Up>
> --
> 2.32.0.93.g670b81a890
>
diff mbox series

Patch

diff --git a/libstdc++-v3/include/std/concepts b/libstdc++-v3/include/std/concepts
index 4490f534412..7f5421f1475 100644
--- a/libstdc++-v3/include/std/concepts
+++ b/libstdc++-v3/include/std/concepts
@@ -70,9 +70,7 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
   /// [concept.convertible], concept convertible_to
   template<typename _From, typename _To>
     concept convertible_to = is_convertible_v<_From, _To>
-      && requires(add_rvalue_reference_t<_From> (&__f)()) {
-	  static_cast<_To>(__f());
-      };
+      && requires { static_cast<_To>(std::declval<_From>()); };
 
   /// [concept.commonref], concept common_reference_with
   template<typename _Tp, typename _Up>