From e2e55895e329ac7a19a845609131988191213f5a Mon Sep 17 00:00:00 2001 From: Neil Henderson Date: Thu, 13 Jun 2024 12:26:38 +1000 Subject: [PATCH 1/2] cpp2::move is now constexpr --- include/cpp2util.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cpp2util.h b/include/cpp2util.h index 971e7d4c4..41be9e88e 100644 --- a/include/cpp2util.h +++ b/include/cpp2util.h @@ -485,13 +485,13 @@ concept valid_custom_is_operator = predicate_member_fun template requires (std::is_copy_constructible_v>) -auto move(T&& t) -> decltype(auto) { +constexpr auto move(T&& t) -> decltype(auto) { return std::move(t); } template requires (!std::is_copy_constructible_v>) -auto move(T&& t) -> decltype(auto) { +constexpr auto move(T&& t) -> decltype(auto) { return std::forward(t); } From fd158e963d67f1ee1cd3a6c5376fea0057b8d449 Mon Sep 17 00:00:00 2001 From: Herb Sutter Date: Thu, 13 Jun 2024 10:23:21 -0700 Subject: [PATCH 2/2] Add `inline` too --- include/cpp2util.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cpp2util.h b/include/cpp2util.h index 41be9e88e..d93913d38 100644 --- a/include/cpp2util.h +++ b/include/cpp2util.h @@ -485,13 +485,13 @@ concept valid_custom_is_operator = predicate_member_fun template requires (std::is_copy_constructible_v>) -constexpr auto move(T&& t) -> decltype(auto) { +inline constexpr auto move(T&& t) -> decltype(auto) { return std::move(t); } template requires (!std::is_copy_constructible_v>) -constexpr auto move(T&& t) -> decltype(auto) { +inline constexpr auto move(T&& t) -> decltype(auto) { return std::forward(t); }