From 3b3d1625752cbe8c9ec62662e594a1af1fd9a458 Mon Sep 17 00:00:00 2001 From: Georgiy Guminov Date: Wed, 12 Jun 2024 16:30:44 +0300 Subject: [PATCH] Make macro more readable. --- include/boost/iterator/iterator_facade.hpp | 30 ++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/include/boost/iterator/iterator_facade.hpp b/include/boost/iterator/iterator_facade.hpp index 9f1c25a..5351e7e 100644 --- a/include/boost/iterator/iterator_facade.hpp +++ b/include/boost/iterator/iterator_facade.hpp @@ -934,19 +934,23 @@ namespace iterators { # define BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS(op, result_type, return_prefix, base_op) \ BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(inline, op, result_type) \ - { \ - /* For those compilers that do not support enable_if */ \ - static_assert( \ - is_interoperable::value && \ - boost::iterators::detail::is_traversal_at_least::type, random_access_traversal_tag>::value && \ - boost::iterators::detail::is_traversal_at_least::type, random_access_traversal_tag>::value, \ - "Derived1 & Derived2 types must be interoperable and must both have random_access_traversal_tag." \ - ); \ - return_prefix iterator_core_access::base_op( \ - *static_cast(&lhs) \ - , *static_cast(&rhs) \ - , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \ - ); \ + { \ + using boost::iterators::detail::is_traversal_at_least; \ + using Derived1IterCat = typename iterator_category::type; \ + using Derived2IterCat = typename iterator_category::type; \ + /* For those compilers that do not support enable_if */ \ + static_assert( \ + is_interoperable::value && \ + is_traversal_at_least::value && \ + is_traversal_at_least::value, \ + "Derived1 & Derived2 types must be interoperable and must both have " \ + "random_access_traversal_tag." \ + ); \ + return_prefix iterator_core_access::base_op( \ + *static_cast(&lhs) \ + , *static_cast(&rhs) \ + , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \ + ); \ } # define BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(op, return_prefix, base_op) \