Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Apr 2021 09:16:29 GMT
From:      Dima Panov <fluffy@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 4902f812a610 - main - devel/boost-libs: backport upstream commit to add support to c++20 concepts
Message-ID:  <202104130916.13D9GT2W000291@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by fluffy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4902f812a6107e7789724a91a3fe04f4545b47b1

commit 4902f812a6107e7789724a91a3fe04f4545b47b1
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2021-04-13 09:13:50 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2021-04-13 09:13:50 +0000

    devel/boost-libs: backport upstream commit to add support to c++20 concepts
    
    Until newer boost is ported, this fixes compilation of client code with errors like
        async_result.hpp: error: concept cannot have associated constraints
    
    See https://github.com/boostorg/asio/issues/312 for details.
    
    PR:             255016
    Submitted by:   amdmi3
    MFH:            2021Q2
---
 devel/boost-libs/Makefile                   |  2 +-
 devel/boost-libs/files/patch-c++20-concepts | 69 +++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+), 1 deletion(-)

diff --git a/devel/boost-libs/Makefile b/devel/boost-libs/Makefile
index 0ec1a3bdaf1e..4e1602f70822 100644
--- a/devel/boost-libs/Makefile
+++ b/devel/boost-libs/Makefile
@@ -1,7 +1,7 @@
 # Created by: Alexander Churanov <churanov.port.maintainer@gmail.com>
 
 PORTNAME=	boost-libs
-PORTREVISION=	4
+PORTREVISION=	5
 
 COMMENT=	Free portable C++ libraries (without Boost.Python)
 
diff --git a/devel/boost-libs/files/patch-c++20-concepts b/devel/boost-libs/files/patch-c++20-concepts
new file mode 100644
index 000000000000..6ac8296abc84
--- /dev/null
+++ b/devel/boost-libs/files/patch-c++20-concepts
@@ -0,0 +1,69 @@
+From a707db8193b30b6cc4a3d10ee946f7f245e07097 Mon Sep 17 00:00:00 2001
+From: Christopher Kohlhoff <chris@kohlhoff.com>
+Date: Tue, 7 Apr 2020 11:18:31 +1000
+Subject: [PATCH] Support C++20 concept syntax.
+
+---
+ include/boost/asio/async_result.hpp  | 18 +++++++++++-------
+ include/boost/asio/detail/config.hpp | 10 +++++++---
+ 2 files changed, 18 insertions(+), 10 deletions(-)
+
+diff --git a/include/boost/asio/async_result.hpp b/include/boost/asio/async_result.hpp
+index 2f4b337d1..0eea0f471 100644
+--- boost/asio/async_result.hpp
++++ boost/asio/async_result.hpp
+@@ -66,9 +66,10 @@ BOOST_ASIO_CONCEPT completion_signature =
+ #define BOOST_ASIO_COMPLETION_SIGNATURE \
+   ::boost::asio::completion_signature
+ 
+-template <typename T, completion_signature Signature>
++template <typename T, typename Signature>
+ BOOST_ASIO_CONCEPT completion_handler_for =
+-  detail::is_completion_handler_for<T, Signature>::value;
++  detail::is_completion_signature<Signature>::value
++    && detail::is_completion_handler_for<T, Signature>::value;
+ 
+ #define BOOST_ASIO_COMPLETION_HANDLER_FOR(s) \
+   ::boost::asio::completion_handler_for<s>
+@@ -488,11 +489,14 @@ struct initiation_archetype
+ 
+ } // namespace detail
+ 
+-template <typename T, completion_signature Signature>
+-BOOST_ASIO_CONCEPT completion_token_for = requires(T&& t)
+-{
+-  async_initiate<T, Signature>(detail::initiation_archetype<Signature>{}, t);
+-};
++template <typename T, typename Signature>
++BOOST_ASIO_CONCEPT completion_token_for =
++  detail::is_completion_signature<Signature>::value
++  &&
++  requires(T&& t)
++  {
++    async_initiate<T, Signature>(detail::initiation_archetype<Signature>{}, t);
++  };
+ 
+ #define BOOST_ASIO_COMPLETION_TOKEN_FOR(s) \
+   ::boost::asio::completion_token_for<s>
+diff --git a/include/boost/asio/detail/config.hpp b/include/boost/asio/detail/config.hpp
+index 27d1d6753..6b85cccea 100644
+--- boost/asio/detail/config.hpp
++++ boost/asio/detail/config.hpp
+@@ -343,10 +343,14 @@
+ // Support concepts on compilers known to allow them.
+ #if !defined(BOOST_ASIO_HAS_CONCEPTS)
+ # if !defined(BOOST_ASIO_DISABLE_CONCEPTS)
+-#  if __cpp_concepts
++#  if defined(__cpp_concepts)
+ #   define BOOST_ASIO_HAS_CONCEPTS 1
+-#   define BOOST_ASIO_CONCEPT concept bool
+-#  endif // __cpp_concepts
++#   if (__cpp_concepts >= 201707)
++#    define BOOST_ASIO_CONCEPT concept
++#   else // (__cpp_concepts >= 201707)
++#    define BOOST_ASIO_CONCEPT concept bool
++#   endif // (__cpp_concepts >= 201707)
++#  endif // defined(__cpp_concepts)
+ # endif // !defined(BOOST_ASIO_DISABLE_CONCEPTS)
+ #endif // !defined(BOOST_ASIO_HAS_CONCEPTS)
+ 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104130916.13D9GT2W000291>